Esempio n. 1
0
 def _functionality(
     self
 ) -> Dict[str, List[Union[str, int, float, bool, List[Any], Dict[str,
                                                                  Any]]]]:
     functionality = {}
     for func_ in get_setting(self.settings,
                              ("functionalities", "available_in_templates"),
                              []):
         functionality[func_] = get_functionality(func_, self.request,
                                                  is_intranet(self.request))
     return functionality
Esempio n. 2
0
    def capabilities(self) -> pyramid.response.Response:
        """ Get print capabilities. """

        templates = get_functionality("print_template", self.request,
                                      is_intranet(self.request))

        # get query string
        params = dict(self.request.params)
        query_string = urllib.parse.urlencode(params)

        resp, content = self._capabilities(templates, query_string,
                                           self.request.method)

        return self._build_response(resp, content, Cache.PRIVATE, "print")
Esempio n. 3
0
    def info(self):
        """ Get print capabilities. """

        templates = get_functionality("print_template", self.request)

        # get query string
        params = dict(self.request.params)
        query_string = urllib.parse.urlencode(params)

        return self._info(
            templates,
            query_string,
            self.request.method,
        )
Esempio n. 4
0
    def capabilities(self) -> pyramid.response.Response:
        """Get print capabilities."""
        templates = get_functionality("print_template", self.request,
                                      is_intranet(self.request))

        # get query string
        params = dict(self.request.params)
        query_string = urllib.parse.urlencode(params)

        resp, content = self._capabilities(templates, query_string,
                                           self.request.method,
                                           self.request.referrer)

        response = self._build_response(resp, content, Cache.PRIVATE, "print")
        # Mapfish print will check the referer header to return the capabilities.
        response.vary += ("Referer", )
        return response
Esempio n. 5
0
    def capabilities(self):
        """ Get print capabilities. """

        templates = get_functionality("print_template", self.request)

        # get query string
        params = dict(self.request.params)
        query_string = urllib.parse.urlencode(params)

        resp, content = self._capabilities(
            templates,
            query_string,
            self.request.method,
        )

        return self._build_response(
            resp,
            content,
            PRIVATE_CACHE,
            "print",
        )
    def test_functionalities(self):
        from tests.functional import create_dummy_request
        from c2cgeoportal_commons.models import DBSession
        from c2cgeoportal_commons.models.static import User
        from c2cgeoportal_geoportal.lib.functionality import get_functionality

        request = create_dummy_request()
        request.user = None
        request1 = create_dummy_request()
        request1.user = DBSession.query(User).filter(
            User.username == "__test_user1").one()
        request2 = create_dummy_request()
        request2.user = DBSession.query(User).filter(
            User.username == "__test_user2").one()

        settings = {
            "functionalities": {
                "anonymous": {},
                "registered": {},
            },
            "admin_interface": {
                "available_functionalities": ["__test_a", "__test_s"]
            }
        }
        functionality.FUNCTIONALITIES_TYPES = None
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request), [])
        self.assertEqual(get_functionality("__test_a", request), [])
        self.assertEqual(get_functionality("__test_s", request1), [])
        self.assertEqual(get_functionality("__test_a", request1), [])
        self.assertEqual(get_functionality("__test_s", request2), ["db"])
        self.assertEqual(get_functionality("__test_a", request2),
                         ["db1", "db2"])

        settings = {
            "functionalities": {
                "anonymous": {},
                "registered": {
                    "__test_s": "registered",
                    "__test_a": ["r1", "r2"]
                }
            },
            "admin_interface": {
                "available_functionalities": ["__test_a", "__test_s"]
            }
        }
        functionality.FUNCTIONALITIES_TYPES = None
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request), [])
        self.assertEqual(get_functionality("__test_a", request), [])
        self.assertEqual(get_functionality("__test_s", request1),
                         ["registered"])
        self.assertEqual(get_functionality("__test_a", request1), ["r1", "r2"])
        self.assertEqual(get_functionality("__test_s", request2), ["db"])
        self.assertEqual(get_functionality("__test_a", request2),
                         ["db1", "db2"])

        settings = {
            "functionalities": {
                "anonymous": {
                    "__test_s": "anonymous",
                    "__test_a": ["a1", "a2"]
                },
                "registered": {}
            },
            "admin_interface": {
                "available_functionalities": ["__test_a", "__test_s"]
            }
        }
        functionality.FUNCTIONALITIES_TYPES = None
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request), ["anonymous"])
        self.assertEqual(get_functionality("__test_a", request), ["a1", "a2"])
        self.assertEqual(get_functionality("__test_s", request1),
                         ["anonymous"])
        self.assertEqual(get_functionality("__test_a", request1), ["a1", "a2"])
        self.assertEqual(get_functionality("__test_s", request2), ["db"])
        self.assertEqual(get_functionality("__test_a", request2),
                         ["db1", "db2"])

        settings = {
            "functionalities": {
                "anonymous": {
                    "__test_s": "anonymous",
                    "__test_a": ["a1", "a2"]
                },
                "registered": {
                    "__test_s": "registered",
                    "__test_a": ["r1", "r2"]
                }
            },
            "admin_interface": {
                "available_functionalities": ["__test_a", "__test_s"]
            }
        }
        functionality.FUNCTIONALITIES_TYPES = None
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request), ["anonymous"])
        self.assertEqual(get_functionality("__test_a", request), ["a1", "a2"])
        self.assertEqual(get_functionality("__test_s", request1),
                         ["registered"])
        self.assertEqual(get_functionality("__test_a", request1), ["r1", "r2"])
        self.assertEqual(get_functionality("__test_s", request2), ["db"])
        self.assertEqual(get_functionality("__test_a", request2),
                         ["db1", "db2"])
Esempio n. 7
0
    def test_functionalities(self):
        from tests.functional import create_dummy_request

        from c2cgeoportal_commons.models import DBSession
        from c2cgeoportal_commons.models.static import User
        from c2cgeoportal_geoportal.lib.functionality import get_functionality

        request = create_dummy_request()
        request.user = None
        request1 = create_dummy_request()
        request1.user = DBSession.query(User).filter(
            User.username == "__test_user1").one()
        request2 = create_dummy_request()
        request2.user = DBSession.query(User).filter(
            User.username == "__test_user2").one()
        request3 = create_dummy_request()
        request3.user = DBSession.query(User).filter(
            User.username == "__test_user3").one()

        settings = {
            "admin_interface": {
                "available_functionalities": [
                    {
                        "name": "__test_a"
                    },
                    {
                        "name": "__test_b",
                        "single": True
                    },
                    {
                        "name": "__test_s",
                        "single": True
                    },
                ]
            }
        }
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        request3.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request, False), [])
        self.assertEqual(get_functionality("__test_a", request, False), [])
        self.assertEqual(get_functionality("__test_s", request1, False), [])
        self.assertEqual(get_functionality("__test_a", request1, False), [])
        self.assertEqual(get_functionality("__test_s", request2, False),
                         ["db"])
        self.assertEqual(set(get_functionality("__test_a", request2, False)),
                         {"db1", "db2"})
        self.assertEqual(get_functionality("__test_s", request3, False),
                         ["db"])
        self.assertEqual(set(get_functionality("__test_a", request3, False)),
                         {"db1", "db2"})
        self.assertEqual(get_functionality("__test_b", request3, False), [])

        fill_tech_user_functionality("registered",
                                     (("__test_s", "registered"),
                                      ("__test_a", "r1"), ("__test_a", "r2")))
        settings = {
            "admin_interface": {
                "available_functionalities": [{
                    "name": "__test_a"
                }, {
                    "name": "__test_s"
                }]
            }
        }
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        request1.user = DBSession.query(User).filter(
            User.username == "__test_user1").one()
        request2.user = DBSession.query(User).filter(
            User.username == "__test_user2").one()
        request3.user = DBSession.query(User).filter(
            User.username == "__test_user3").one()
        self.assertEqual(get_functionality("__test_s", request, False), [])
        self.assertEqual(get_functionality("__test_a", request, False), [])
        self.assertEqual(get_functionality("__test_s", request1, False),
                         ["registered"])
        self.assertEqual(set(get_functionality("__test_a", request1, False)),
                         {"r1", "r2"})
        self.assertEqual(get_functionality("__test_s", request2, False),
                         ["db"])
        self.assertEqual(set(get_functionality("__test_a", request2, False)),
                         {"db1", "db2"})

        fill_tech_user_functionality("registered", [])
        fill_tech_user_functionality("anonymous",
                                     (("__test_s", "anonymous"),
                                      ("__test_a", "a1"), ("__test_a", "a2")))
        settings = {
            "admin_interface": {
                "available_functionalities": [{
                    "name": "__test_a"
                }, {
                    "name": "__test_s"
                }]
            }
        }
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        request1.user = DBSession.query(User).filter(
            User.username == "__test_user1").one()
        request2.user = DBSession.query(User).filter(
            User.username == "__test_user2").one()
        request3.user = DBSession.query(User).filter(
            User.username == "__test_user3").one()
        self.assertEqual(get_functionality("__test_s", request, False),
                         ["anonymous"])
        self.assertEqual(set(get_functionality("__test_a", request, False)),
                         {"a1", "a2"})
        self.assertEqual(get_functionality("__test_s", request1, False),
                         ["anonymous"])
        self.assertEqual(set(get_functionality("__test_a", request1, False)),
                         {"a1", "a2"})
        self.assertEqual(get_functionality("__test_s", request2, False),
                         ["db"])
        self.assertEqual(set(get_functionality("__test_a", request2, False)),
                         {"db1", "db2"})

        fill_tech_user_functionality("registered",
                                     (("__test_s", "registered"),
                                      ("__test_a", "r1"), ("__test_a", "r2")))
        fill_tech_user_functionality("anonymous",
                                     (("__test_s", "anonymous"),
                                      ("__test_a", "a1"), ("__test_a", "a2")))
        settings = {
            "admin_interface": {
                "available_functionalities": [{
                    "name": "__test_a"
                }, {
                    "name": "__test_s"
                }]
            }
        }
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        request1.user = DBSession.query(User).filter(
            User.username == "__test_user1").one()
        request2.user = DBSession.query(User).filter(
            User.username == "__test_user2").one()
        request3.user = DBSession.query(User).filter(
            User.username == "__test_user3").one()
        self.assertEqual(get_functionality("__test_s", request, False),
                         ["anonymous"])
        self.assertEqual(set(get_functionality("__test_a", request, False)),
                         {"a1", "a2"})
        self.assertEqual(get_functionality("__test_s", request1, False),
                         ["registered"])
        self.assertEqual(set(get_functionality("__test_a", request1, False)),
                         {"r1", "r2"})
        self.assertEqual(get_functionality("__test_s", request2, False),
                         ["db"])
        self.assertEqual(set(get_functionality("__test_a", request2, False)),
                         {"db1", "db2"})
    def test_functionalities(self):
        from tests.functional import create_dummy_request
        from c2cgeoportal_commons.models import DBSession
        from c2cgeoportal_commons.models.static import User
        from c2cgeoportal_geoportal.lib.functionality import get_functionality

        request = create_dummy_request()
        request.user = None
        request1 = create_dummy_request()
        request1.user = DBSession.query(User).filter(User.username == "__test_user1").one()
        request2 = create_dummy_request()
        request2.user = DBSession.query(User).filter(User.username == "__test_user2").one()

        settings = {
            "functionalities": {
                "anonymous": {},
                "registered": {},
            },
            "admin_interface": {
                "available_functionalities": ["__test_a", "__test_s"]
            }
        }
        functionality.FUNCTIONALITIES_TYPES = None
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request), [])
        self.assertEqual(get_functionality("__test_a", request), [])
        self.assertEqual(get_functionality("__test_s", request1), [])
        self.assertEqual(get_functionality("__test_a", request1), [])
        self.assertEqual(get_functionality("__test_s", request2), ["db"])
        self.assertEqual(get_functionality("__test_a", request2), ["db1", "db2"])

        settings = {
            "functionalities": {
                "anonymous": {},
                "registered": {
                    "__test_s": "registered",
                    "__test_a": ["r1", "r2"]
                }
            },
            "admin_interface": {
                "available_functionalities": ["__test_a", "__test_s"]
            }
        }
        functionality.FUNCTIONALITIES_TYPES = None
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request), [])
        self.assertEqual(get_functionality("__test_a", request), [])
        self.assertEqual(get_functionality("__test_s", request1), ["registered"])
        self.assertEqual(get_functionality("__test_a", request1), ["r1", "r2"])
        self.assertEqual(get_functionality("__test_s", request2), ["db"])
        self.assertEqual(get_functionality("__test_a", request2), ["db1", "db2"])

        settings = {
            "functionalities": {
                "anonymous": {
                    "__test_s": "anonymous",
                    "__test_a": ["a1", "a2"]
                },
                "registered": {}
            },
            "admin_interface": {
                "available_functionalities": ["__test_a", "__test_s"]
            }
        }
        functionality.FUNCTIONALITIES_TYPES = None
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request), ["anonymous"])
        self.assertEqual(get_functionality("__test_a", request), ["a1", "a2"])
        self.assertEqual(get_functionality("__test_s", request1), ["anonymous"])
        self.assertEqual(get_functionality("__test_a", request1), ["a1", "a2"])
        self.assertEqual(get_functionality("__test_s", request2), ["db"])
        self.assertEqual(get_functionality("__test_a", request2), ["db1", "db2"])

        settings = {
            "functionalities": {
                "anonymous": {
                    "__test_s": "anonymous",
                    "__test_a": ["a1", "a2"]
                },
                "registered": {
                    "__test_s": "registered",
                    "__test_a": ["r1", "r2"]
                }
            },
            "admin_interface": {
                "available_functionalities": ["__test_a", "__test_s"]
            }
        }
        functionality.FUNCTIONALITIES_TYPES = None
        request.registry.settings.update(settings)
        request1.registry.settings.update(settings)
        request2.registry.settings.update(settings)
        self.assertEqual(get_functionality("__test_s", request), ["anonymous"])
        self.assertEqual(get_functionality("__test_a", request), ["a1", "a2"])
        self.assertEqual(get_functionality("__test_s", request1), ["registered"])
        self.assertEqual(get_functionality("__test_a", request1), ["r1", "r2"])
        self.assertEqual(get_functionality("__test_s", request2), ["db"])
        self.assertEqual(get_functionality("__test_a", request2), ["db1", "db2"])