def test_writable_layers3(self): from c2cgeoportal_geoportal.lib.layers import get_writable_layers pl = get_writable_layers(self.role3_id, [self.ogc_server_id]) self.assertEqual({pl[l].name for l in pl}, {"testpoint_protected_query_with_collect"})
def test_writable_layers2(self): from c2cgeoportal_commons.models import DBSession, static from c2cgeoportal_geoportal.lib.layers import get_writable_layers pl = get_writable_layers( DBSession.query(static.User).get(self.user2_id), [self.ogc_server_id]) self.assertEqual({pl[l].name for l in pl}, set())
def test_writable_layers3(self): from c2cgeoportal_geoportal.lib.layers import get_writable_layers pl = get_writable_layers(self._create_dummy_request("__test_user3"), [self.ogc_server_id]) self.assertEqual({pl[l].name for l in pl}, {"testpoint_protected_query_with_collect"})
def _is_allowed(self, typenames: Set[str]) -> bool: """Check if the current user has the rights to access the given type-names.""" writable_layers = set() for gmflayer in list( get_writable_layers(self.request, [self.ogc_server.id]).values()): for ogclayer in gmflayer.layer.split(","): writable_layers.add(ogclayer.lower()) return typenames.issubset(writable_layers)
def test_writable_layers3(self): from c2cgeoportal_commons.models import DBSession, static from c2cgeoportal_geoportal.lib.layers import get_writable_layers pl = get_writable_layers( DBSession.query(static.User).get(self.user3_id), [self.ogc_server_id]) self.assertEqual({pl[l].name for l in pl}, {"testpoint_protected_query_with_collect"})
def _is_allowed(self, typenames): """ Checks if the current user has the rights to access the given type-names. """ writable_layers = set() for gmflayer in list( get_writable_layers(self.role_id, [self.default_ogc_server.id]).values()): for ogclayer in gmflayer.layer.split(","): writable_layers.add(ogclayer) return typenames.issubset(writable_layers)
def filter_wfst_capabilities(content: str, wfs_url: Url, request: pyramid.request.Request) -> str: writable_layers: Set[str] = set() ogc_server_ids = get_ogc_server_wfs_url_ids(request).get(wfs_url) for gmflayer in list(get_writable_layers(request, ogc_server_ids).values()): writable_layers += gmflayer.layer.split(",") parser = defusedxml.expatreader.create_parser(forbid_external=False) # skip inclusion of DTDs parser.setFeature(xml.sax.handler.feature_external_ges, False) parser.setFeature(xml.sax.handler.feature_external_pes, False) result = StringIO() downstream_handler = XMLGenerator(result, "utf-8") filter_handler = _CapabilitiesFilter( parser, downstream_handler, "FeatureType", layers_whitelist=writable_layers ) filter_handler.parse(StringIO(content)) return result.getvalue()
def test_writable_layers2(self): from c2cgeoportal_geoportal.lib.layers import get_writable_layers pl = get_writable_layers(self._create_dummy_request("__test_user2"), [self.ogc_server_id]) self.assertEqual({pl[l].name for l in pl}, set())
def test_writable_layers2(self): from c2cgeoportal_geoportal.lib.layers import get_writable_layers pl = get_writable_layers(self.role2_id, [self.ogc_server_id]) self.assertEqual({pl[l].name for l in pl}, set())