Пример #1
0
def create_dummy_request(additional_settings=None,
                         authentication=True,
                         user=None,
                         *args,
                         **kargs):
    if additional_settings is None:
        additional_settings = {}
    from c2cgeoportal_geoportal import default_user_validator
    from c2cgeoportal_geoportal import create_get_user_from_request
    from c2cgeoportal_geoportal.lib.authentication import create_authentication

    request = tests.create_dummy_request(
        {
            "host_forward_host": [],
            "functionalities": {
                "available_in_templates": []
            },
            "layers": {
                "geometry_validation": True
            },
            "admin_interface": {
                "available_functionalities": [{
                    "name": "mapserver_substitution",
                    "single": False
                }]
            },
        },
        *args,
        **kargs,
    )
    request.accept_language = webob.acceptparse.create_accept_language_header(
        "fr-CH,fr;q=0.8,en;q=0.5,en-US;q=0.3")
    request.registry.settings.update(additional_settings)
    request.referer = "http://example.com/app"
    request.path_info_peek = lambda: "main"
    request.interface_name = "main"
    request.get_user = _get_user
    request.registry.validate_user = default_user_validator
    request.c2c_request_id = "test"
    if authentication and user is None:
        authentication_settings = {
            "authtkt_cookie_name":
            "__test",
            "authtkt_secret":
            "long enough secret!!  00000000000000000000000000000000000000000000000",
        }
        authentication_settings.update(additional_settings)
        request._get_authentication_policy = lambda: create_authentication(
            authentication_settings)
    elif user is not None:
        config.testing_securitypolicy(user)
    request.set_property(create_get_user_from_request(
        {"authorized_referers": [request.referer]}),
                         name="user",
                         reify=True)
    return request
Пример #2
0
    def _get_user(self, to, ref, method="GET"):
        class MockRequest:
            def __init__(self, to, ref, method):
                self.path_qs = to
                self.referer = ref
                self.user_ = TestReferer.USER
                self.method = method

        get_user = create_get_user_from_request(self.SETTINGS)
        return get_user(MockRequest(to=to, ref=ref, method=method))
Пример #3
0
    def _get_user(self, to, ref, method="GET"):
        class MockRequest:
            def __init__(self, to, ref, method):
                self.path_qs = to
                self.referer = ref
                self.user_ = TestReferer.USER
                self.method = method

        get_user = create_get_user_from_request(self.SETTINGS)
        return get_user(MockRequest(to=to, ref=ref, method=method))
Пример #4
0
 def test_wrong_key(self):
     token = create_token("foobar1234567890", "__test_user1", "__test_user1", 1)
     request = create_dummy_request({
         "urllogin": {
             "aes_key": "foobar1234567891"
         }
     }, params={"auth": token})
     get_user_from_request = create_get_user_from_request(request.registry.settings)
     get_user_from_request(request)
     self.assertIsNone(self.user)
Пример #5
0
 def get_user(self, aeskey, user, password, valid):
     token = create_token(aeskey, user, password, valid)
     request = create_dummy_request({
         "urllogin": {
             "aes_key": aeskey
         }
     }, params={"auth": token})
     get_user_from_request = create_get_user_from_request(request.registry.settings)
     get_user_from_request(request)
     return self.user
Пример #6
0
 def get_user(self, aeskey, user, password, valid):
     token = create_token(aeskey, user, password, valid)
     request = create_dummy_request({"urllogin": {
         "aes_key": aeskey
     }},
                                    params={"auth": token})
     get_user_from_request = create_get_user_from_request(
         request.registry.settings)
     get_user_from_request(request)
     return self.user
Пример #7
0
    def _get_user(self, to, ref, method="GET"):
        class MockRequest:
            def __init__(self, to, ref, method):
                self.path_qs = to
                self.referer = ref
                self.user_ = TestReferer.USER
                self.method = method

        config._config = {"schema": "main", "schema_static": "main_static", "srid": 21781}
        get_user = create_get_user_from_request(self.SETTINGS)
        return get_user(MockRequest(to=to, ref=ref, method=method))
Пример #8
0
 def test_wrong_key(self):
     token = create_token("foobar1234567890", "__test_user1",
                          "__test_user1", 1)
     request = create_dummy_request(
         {"urllogin": {
             "aes_key": "foobar1234567891"
         }},
         params={"auth": token})
     get_user_from_request = create_get_user_from_request(
         request.registry.settings)
     get_user_from_request(request)
     self.assertIsNone(self.user)
Пример #9
0
def create_dummy_request(additional_settings=None,
                         authentication=True,
                         user=None,
                         *args,
                         **kargs):
    if additional_settings is None:
        additional_settings = {}
    from c2cgeoportal_geoportal import default_user_validator
    from c2cgeoportal_geoportal import create_get_user_from_request
    from c2cgeoportal_geoportal.lib.authentication import create_authentication
    request = tests.create_dummy_request(
        {
            "host_forward_host": [],
            "mapserverproxy": {
                "default_ogc_server": "__test_ogc_server",
                "external_ogc_server": "__test_external_ogc_server",
            },
            "functionalities": {
                "registered": {},
                "anonymous": {},
                "available_in_templates": []
            },
            "layers": {
                "geometry_validation": True
            }
        }, *args, **kargs)
    request.accept_language = Accept("fr-CH,fr;q=0.8,en;q=0.5,en-US;q=0.3")
    request.registry.settings.update(additional_settings)
    request.referer = "http://example.com/app"
    request.path_info_peek = lambda: "main"
    request.interface_name = "main"
    request.get_user = _get_user
    request.registry.validate_user = default_user_validator
    request.client_addr = None
    request.c2c_request_id = 'test'
    if authentication and user is None:
        request._get_authentication_policy = lambda: create_authentication(
            {
                "authtkt_cookie_name": "__test",
                "authtkt_secret": "123",
            })
    elif user is not None:
        config.testing_securitypolicy(user)
    request.set_property(create_get_user_from_request(
        {"authorized_referers": [request.referer]}),
                         name="user",
                         reify=True)
    return request
Пример #10
0
def create_dummy_request(additional_settings=None, authentication=True, user=None, *args, **kargs):
    from pyramid.interfaces import IAuthenticationPolicy

    from c2cgeoportal_geoportal import create_get_user_from_request
    from c2cgeoportal_geoportal.lib.authentication import create_authentication

    if additional_settings is None:
        additional_settings = {}

    pyramid.testing.tearDown()

    request = tests.create_dummy_request(
        {
            "functionalities": {"available_in_templates": []},
            "layers": {"geometry_validation": True},
            "admin_interface": {
                "available_functionalities": [{"name": "mapserver_substitution", "single": False}],
                "available_metadata": [{"name": "lastUpdateDateColumn"}, {"name": "lastUpdateUserColumn"}],
            },
        },
        *args,
        **kargs,
    )

    global config
    config = pyramid.testing.setUp(
        request=request,
        registry=request.registry,
        settings=get_settings(),
    )

    request.accept_language = webob.acceptparse.create_accept_language_header(
        "fr-CH,fr;q=0.8,en;q=0.5,en-US;q=0.3"
    )
    request.registry.settings.update(additional_settings)
    request.referer = "http://example.com/app"
    request.path_info_peek = lambda: "main"
    request.interface_name = "main"
    request.get_user = _get_user
    request.c2c_request_id = "test"
    request.matched_route = DummyRoute()
    init_registry(request.registry)

    if authentication and user is None:
        authentication_settings = {
            "authtkt_cookie_name": "__test",
            "authtkt_secret": "long enough secret!!  00000000000000000000000000000000000000000000000",
            "authentication": {},
        }
        authentication_settings.update(additional_settings)

        testing_legacySecurityPolicy(config)
        config.registry.registerUtility(create_authentication(authentication_settings), IAuthenticationPolicy)

    elif user is not None:
        config.testing_securitypolicy(user)
    request.set_property(
        create_get_user_from_request({"authorized_referers": [request.referer]}), name="user", reify=True
    )

    return request
Пример #11
0
 def _get_user(method):
     request = create_dummy_request(
         params={"auth": "this is a form field value"}, method=method)
     get_user_from_request = create_get_user_from_request(
         request.registry.settings)
     get_user_from_request(request)