def test_get_area(self, server_iface, dbsession, test_data):
        ogcserver_accesscontrol = OGCServerAccessControl(
            server_iface,
            'qgisserver1',
            21781,
            dbsession
        )

        for user_name, layer_name, expected in [
            ('root', layer_name, (Access.FULL, None))
            for layer_name in (
                'public_layer',
                'private_layer1',
                'private_layer2',
                'private_layer3',
            )
        ] + [
            ('user1', 'public_layer', (Access.FULL, None)),
            ('user1', 'private_layer1', (Access.AREA, area1.wkt)),
            ('user1', 'private_layer2', (Access.NO, None)),
            ('user1', 'private_layer3', (Access.AREA, area1.wkt)),
        ]:
            user = test_data['users'][user_name]
            set_request_parameters(server_iface, {
                'USER_ID': str(user.id)
            })
            layer = QgsProject.instance().mapLayersByName(layer_name)[0]
            result = ogcserver_accesscontrol.get_area(layer)
            assert expected == result, (
                'get_area with "{}", "{}" should return {}'.
                format(user_name, layer_name, expected))
    def test_get_area(self, server_iface, DBSession,
                      test_data):  # noqa: ignore=N803
        dbsession = DBSession()
        ogcserver_accesscontrol = OGCServerAccessControl(
            server_iface, "qgisserver1", "no_project", 21781,
            lambda: dbsession)
        ogcserver_accesscontrol.project = test_data["project"]

        for user_name, layer_name, expected in [
            ("root", layer_name, (Access.FULL, None))
                for layer_name in ("public_layer", "private_layer1",
                                   "private_layer2", "private_layer3")
        ] + [
            ("user1", "public_layer", (Access.FULL, None)),
            ("user1", "private_layer1", (Access.AREA, area1.wkt)),
            ("user1", "private_layer2", (Access.NO, None)),
            ("user1", "private_layer3", (Access.AREA, area1.wkt)),
        ]:
            user = test_data["users"][user_name]
            set_request_parameters(
                server_iface,
                {
                    "USER_ID": str(user["id"]),
                    "ROLE_IDS": ",".join([str(r) for r in user["role_ids"]])
                },
            )
            layer = test_data["project"].mapLayersByName(layer_name)[0]
            access, area = ogcserver_accesscontrol.get_area(layer, dbsession)
            assert expected == (
                access,
                area.wkt if area else None,
            ), 'get_area with "{}", "{}" should return {}'.format(
                user_name, layer_name, expected)
示例#3
0
    def test_get_area(self, server_iface, dbsession, test_data):
        ogcserver_accesscontrol = OGCServerAccessControl(
            server_iface, "qgisserver1", 21781, dbsession)

        for user_name, layer_name, expected in [
            ("root", layer_name, (Access.FULL, None))
                for layer_name in ("public_layer", "private_layer1",
                                   "private_layer2", "private_layer3")
        ] + [
            ("user1", "public_layer", (Access.FULL, None)),
            ("user1", "private_layer1", (Access.AREA, area1.wkt)),
            ("user1", "private_layer2", (Access.NO, None)),
            ("user1", "private_layer3", (Access.AREA, area1.wkt)),
        ]:
            user = test_data["users"][user_name]
            set_request_parameters(server_iface, {"USER_ID": str(user.id)})
            layer = QgsProject.instance().mapLayersByName(layer_name)[0]
            result = ogcserver_accesscontrol.get_area(layer)
            assert expected == result, 'get_area with "{}", "{}" should return {}'.format(
                user_name, layer_name, expected)