Exemplo n.º 1
0
 def test_unit_update__err__external_auth_ldap_set_email(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_user(
         email='bob@bob',
         password=None,
         name='bob',
         auth_type=AuthType.LDAP,
         timezone='+2',
         lang='en',
         do_save=True,
         do_notify=False,
     )
     with pytest.raises(ExternalAuthUserEmailModificationDisallowed):
         api.update(
             email='bob@bob1',
             user = u,
             name='bobi',
             password=None,
             auth_type=AuthType.LDAP,
             timezone='-1',
             lang='fr',
             do_save=True,
         )
Exemplo n.º 2
0
 def test_unit__create_minimal_user_and_update__err__set_unaivalable_auth_type(
     self, session, app_config
 ):
     api = UserApi(current_user=None, session=session, config=app_config)
     u = api.create_minimal_user("bob@bob")
     with pytest.raises(UserAuthTypeDisabled):
         api.update(u, name="bob", email="bob@bob", auth_type=AuthType.LDAP, do_save=True)
Exemplo n.º 3
0
 def test_unit_update__ok_external_auth_ldap(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_user(
         email='bob@bob',
         password=None,
         name='bob',
         auth_type=AuthType.LDAP,
         timezone='+2',
         lang='en',
         do_save=True,
         do_notify=False,
     )
     api.update(
         email='bob@bob',
         user = u,
         name='bobi',
         password=None,
         auth_type=AuthType.LDAP,
         timezone='-1',
         lang='fr',
         do_save=True,
     )
     assert u.display_name == 'bobi'
Exemplo n.º 4
0
 def test_unit_update__err__external_auth_ldap_set_email(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_user(
         email='bob@bob',
         password=None,
         name='bob',
         auth_type=AuthType.LDAP,
         timezone='+2',
         lang='en',
         do_save=True,
         do_notify=False,
     )
     with pytest.raises(ExternalAuthUserEmailModificationDisallowed):
         api.update(
             email='bob@bob1',
             user=u,
             name='bobi',
             password=None,
             auth_type=AuthType.LDAP,
             timezone='-1',
             lang='fr',
             do_save=True,
         )
Exemplo n.º 5
0
 def test_unit_update__ok_external_auth_ldap(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_user(
         email='bob@bob',
         password=None,
         name='bob',
         auth_type=AuthType.LDAP,
         timezone='+2',
         lang='en',
         do_save=True,
         do_notify=False,
     )
     api.update(
         email='bob@bob',
         user=u,
         name='bobi',
         password=None,
         auth_type=AuthType.LDAP,
         timezone='-1',
         lang='fr',
         do_save=True,
     )
     assert u.display_name == 'bobi'
Exemplo n.º 6
0
    def test_unit__update_user_email__err__wrong_format(self):
        api = UserApi(current_user=None, session=self.session, config=self.app_config)
        u = api.create_minimal_user("bob@bob")

        # 2 char
        with pytest.raises(EmailValidationFailed):
            api.update(user=u, email="b+b")
Exemplo n.º 7
0
    def test_unit__user_with_email_exists__ok__nominal_case(self):
        api = UserApi(current_user=None, session=self.session, config=self.app_config)
        u = api.create_minimal_user("bibi@bibi")
        api.update(u, "bibi", "bibi@bibi", "password", do_save=True)
        transaction.commit()

        eq_(True, api.user_with_email_exists("bibi@bibi"))
        eq_(False, api.user_with_email_exists("unknown"))
Exemplo n.º 8
0
 def test_unit__update_timezone__too_long_timezone(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     with pytest.raises(TracimValidationFailed):
         timezone = "t" * 33
         u = api.update(user=u, timezone=timezone)
     timezone = "t" * 32
     api.update(user=u, timezone=timezone)
Exemplo n.º 9
0
 def test_unit__update_user_lang__err__too_long_lang(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     with pytest.raises(TracimValidationFailed):
         lang = "n" * 4
         u = api.update(user=u, lang=lang)
     lang = "n" * 3
     api.update(user=u, lang=lang)
Exemplo n.º 10
0
 def test_unit__update_user_password__err__too_short_password(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     # 5 char
     with pytest.raises(TracimValidationFailed):
         api.update(user=u, password="******")
     # 6 char
     api.update(user=u, password="******")
Exemplo n.º 11
0
 def test_unit__update_user_public_name__err__too_long_password(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     with pytest.raises(TracimValidationFailed):
         name = "n" * 256
         u = api.update(user=u, name=name)
     name = "n" * 255
     api.update(user=u, name=name)
Exemplo n.º 12
0
 def test_unit__update_user_password__err__too_long_password(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     with pytest.raises(TracimValidationFailed):
         password = "******" * 513
         u = api.update(user=u, password=password)
     password = "******" * 512
     api.update(user=u, password=password)
Exemplo n.º 13
0
 def test_unit__update_user_lang__err__too_short_lang(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     # 1 char
     with pytest.raises(TracimValidationFailed):
         u = api.update(user=u, lang="f")
     # 2 char
     u = api.update(user=u, lang="fr")
     assert u.lang == "fr"
Exemplo n.º 14
0
 def test_unit__update_user_public_name__err__too_short_public_name(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     # 2 char
     with pytest.raises(TracimValidationFailed):
         u = api.update(user=u, name="nn")
     # 3 char
     u = api.update(user=u, name="nnn")
     assert u.display_name == "nnn"
Exemplo n.º 15
0
    def test_get_one_by_email(self):
        api = UserApi(current_user=None, session=self.session, config=self.app_config)
        u = api.create_minimal_user("bibi@bibi")
        self.session.flush()
        api.update(u, "bibi", "bibi@bibi", "password", do_save=True)
        uid = u.user_id
        transaction.commit()

        eq_(uid, api.get_one_by_email("bibi@bibi").user_id)
Exemplo n.º 16
0
 def test_unit__create_minimal_user_and_update__err__set_unaivalable_auth_type(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     with pytest.raises(UserAuthTypeDisabled):
         api.update(u, name='bob', email='bob@bob', auth_type=AuthType.LDAP, do_save=True)
Exemplo n.º 17
0
 def test_unit__create_minimal_user_and_update__ok__nominal_case(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     api.update(u, "bob", "bob@bob", "password", do_save=True)
     nu = api.get_one_by_email("bob@bob")
     assert nu is not None
     assert nu.email == "bob@bob"
     assert nu.display_name == "bob"
     assert nu.validate_password("password")
Exemplo n.º 18
0
 def test_unit__get_one__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('titi@titi')
     api.update(u, 'titi', 'titi@titi', 'password', do_save=True)
     one = api.get_one(u.user_id)
     eq_(u.user_id, one.user_id)
Exemplo n.º 19
0
 def test_unit__update_user_lang_name__ok__nominal_case(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     assert u.lang is None
     # 2 char
     u = api.update(user=u, lang="fr")
     assert u.lang == "fr"
     # 3 char
     u = api.update(user=u, lang="fre")
     assert u.lang == "fre"
Exemplo n.º 20
0
 def test_unit__get_one__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('titi@titi')
     api.update(u, 'titi', 'titi@titi', 'password', do_save=True)
     one = api.get_one(u.user_id)
     eq_(u.user_id, one.user_id)
Exemplo n.º 21
0
 def test_unit__update_user_public_name__ok__nominal_case(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     assert u.display_name == "bob"
     # 8 char
     u = api.update(user=u, name="John Doe")
     assert u.display_name == "John Doe"
     # 16 char
     u = api.update(user=u, name="John Doe" * 2)
     assert u.display_name == "John Doe" * 2
Exemplo n.º 22
0
    def test_unit__update_user_email__err__too_short_email(self):
        api = UserApi(current_user=None, session=self.session, config=self.app_config)
        u = api.create_minimal_user("bob@bob")

        # 2 char
        with pytest.raises(TracimValidationFailed):
            u = api.update(user=u, email="b@")

        # 3 char
        u = api.update(user=u, email="b@b")
        assert u.email == "b@b"
Exemplo n.º 23
0
 def test_unit__update_user_password__ok__nominal_case(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_minimal_user("bob@bob")
     assert u.password is None
     # 8 char
     u = api.update(user=u, password="******")
     assert u.password
     assert u.validate_password("password")
     # 16 char
     u = api.update(user=u, password="******" * 2)
     assert u.password
     assert u.validate_password("password" * 2)
Exemplo n.º 24
0
    def test_unit__user_with_email_exists__ok__nominal_case(self):
        api = UserApi(
            current_user=None,
            session=self.session,
            config=self.app_config,
        )
        u = api.create_minimal_user('bibi@bibi')
        api.update(u, 'bibi', 'bibi@bibi', 'password', do_save=True)
        transaction.commit()

        eq_(True, api.user_with_email_exists('bibi@bibi'))
        eq_(False, api.user_with_email_exists('unknown'))
Exemplo n.º 25
0
 def test_unit__update_user_lang__err__too_long_lang(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     with pytest.raises(TracimValidationFailed):
         lang = 'n' * 4
         u = api.update(user=u, lang=lang)
     lang = 'n' * 3
     u = api.update(user=u, lang=lang)
Exemplo n.º 26
0
    def test_unit__user_with_email_exists__ok__nominal_case(self):
        api = UserApi(
            current_user=None,
            session=self.session,
            config=self.config,
        )
        u = api.create_minimal_user('bibi@bibi')
        api.update(u, 'bibi', 'bibi@bibi', 'pass', do_save=True)
        transaction.commit()

        eq_(True, api.user_with_email_exists('bibi@bibi'))
        eq_(False, api.user_with_email_exists('unknown'))
Exemplo n.º 27
0
 def test_unit__update_user_password__err__too_long_password(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     with pytest.raises(TracimValidationFailed):
         password = '******' * 513
         u = api.update(user=u, password=password)
     password = '******' * 512
     u = api.update(user=u, password=password)
Exemplo n.º 28
0
 def test_unit__update_user_public_name__err__too_long_password(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     with pytest.raises(TracimValidationFailed):
         name = 'n' * 256
         u = api.update(user=u, name=name)
     name = 'n' * 255
     u = api.update(user=u, name=name)
Exemplo n.º 29
0
 def test_unit__update_user_password__err__too_short_password(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     # 5 char
     with pytest.raises(TracimValidationFailed):
         u = api.update(user=u, password='******')
     # 6 char
     u = api.update(user=u, password='******')
Exemplo n.º 30
0
 def test_unit__update_timezone__too_long_timezone(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     with pytest.raises(TracimValidationFailed):
         timezone = 't' * 33
         u = api.update(user=u, timezone=timezone)
     timezone = 't' * 32
     u = api.update(user=u, timezone=timezone)
Exemplo n.º 31
0
 def test_unit__update_user_public_name__err__too_short_public_name(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     # 2 char
     with pytest.raises(TracimValidationFailed):
         u = api.update(user=u, name='nn')
     # 3 char
     u = api.update(user=u, name='nnn')
     assert u.display_name == 'nnn'
Exemplo n.º 32
0
 def test_unit__update_user_lang__err__too_short_lang(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     # 1 char
     with pytest.raises(TracimValidationFailed):
         u = api.update(user=u, lang='f')
     # 2 char
     u = api.update(user=u, lang='fr')
     assert u.lang == 'fr'
Exemplo n.º 33
0
 def test_unit__create_minimal_user_and_update__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.config,
     )
     u = api.create_minimal_user('bob@bob')
     api.update(u, 'bob', 'bob@bob', 'pass', do_save=True)
     nu = api.get_one_by_email('bob@bob')
     assert nu is not None
     assert nu.email == 'bob@bob'
     assert nu.display_name == 'bob'
     assert nu.validate_password('pass')
Exemplo n.º 34
0
 def test_unit__create_minimal_user_and_update__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     api.update(u, 'bob', 'bob@bob', 'password', do_save=True)
     nu = api.get_one_by_email('bob@bob')
     assert nu is not None
     assert nu.email == 'bob@bob'
     assert nu.display_name == 'bob'
     assert nu.validate_password('password')
Exemplo n.º 35
0
    def test_get_one_by_email(self):
        api = UserApi(
            current_user=None,
            session=self.session,
            config=self.config,
        )
        u = api.create_minimal_user('bibi@bibi')
        self.session.flush()
        api.update(u, 'bibi', 'bibi@bibi', 'pass', do_save=True)
        uid = u.user_id
        transaction.commit()

        eq_(uid, api.get_one_by_email('bibi@bibi').user_id)
Exemplo n.º 36
0
    def test_get_one_by_email(self):
        api = UserApi(
            current_user=None,
            session=self.session,
            config=self.app_config,
        )
        u = api.create_minimal_user('bibi@bibi')
        self.session.flush()
        api.update(u, 'bibi', 'bibi@bibi', 'password', do_save=True)
        uid = u.user_id
        transaction.commit()

        eq_(uid, api.get_one_by_email('bibi@bibi').user_id)
Exemplo n.º 37
0
    def test_unit__update_user_email__err__too_long_email(self):
        api = UserApi(current_user=None, session=self.session, config=self.app_config)
        u = api.create_minimal_user("bob@bob")
        # 256 char
        chars = "o" * (256 - 6)
        with pytest.raises(TracimValidationFailed):
            email = "b{}b@bob".format(chars)
            u = api.update(user=u, email=email)

        # 255 char
        chars = "o" * (255 - 6)
        email = "b{}b@bob".format(chars)
        u = api.update(user=u, email=email)
        assert u.email == email
Exemplo n.º 38
0
 def test_unit__update_user_public_name__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     assert u.display_name == 'bob'
     # 8 char
     u = api.update(user=u, name='John Doe')
     assert u.display_name == 'John Doe'
     # 16 char
     u = api.update(user=u, name='John Doe'*2)
     assert u.display_name == 'John Doe'*2
Exemplo n.º 39
0
 def test_unit__update_user_lang_name__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     assert u.lang is None
     # 2 char
     u = api.update(user=u, lang='fr')
     assert u.lang == 'fr'
     # 3 char
     u = api.update(user=u, lang='fre')
     assert u.lang == 'fre'
Exemplo n.º 40
0
 def set_allowed_space(self, context, request: TracimRequest, hapic_data=None):
     """
     set user allowed_space
     """
     app_config = request.registry.settings["CFG"]  # type: CFG
     uapi = UserApi(
         current_user=request.current_user, session=request.dbsession, config=app_config  # User
     )
     uapi.update(
         user=request.candidate_user,
         auth_type=request.candidate_user.auth_type,
         allowed_space=hapic_data.body.allowed_space,
         do_save=True,
     )
     return
Exemplo n.º 41
0
    def test_unit__update_user_email__err__too_short_email(self):
        api = UserApi(
            current_user=None,
            session=self.session,
            config=self.app_config,
        )
        u = api.create_minimal_user('bob@bob')

        # 2 char
        with pytest.raises(TracimValidationFailed):
            u = api.update(user=u, email='b@')

        # 3 char
        u = api.update(user=u, email='b@b')
        assert u.email == 'b@b'
Exemplo n.º 42
0
 def set_profile(self, context, request: TracimRequest, hapic_data=None):
     """
     set user profile
     """
     app_config = request.registry.settings["CFG"]  # type: CFG
     uapi = UserApi(
         current_user=request.current_user, session=request.dbsession, config=app_config  # User
     )
     profile = Profile.get_profile_from_slug(hapic_data.body.profile)
     uapi.update(
         user=request.candidate_user,
         auth_type=request.candidate_user.auth_type,
         profile=profile,
         do_save=True,
     )
     return
Exemplo n.º 43
0
 def test_unit__update_user_password__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     assert u.password is None
     # 8 char
     u = api.update(user=u, password='******')
     assert u.password
     assert u.validate_password('password')
     # 16 char
     u = api.update(user=u, password='******'*2)
     assert u.password
     assert u.validate_password('password'*2)
Exemplo n.º 44
0
    def test_unit__update_user_email__err__too_long_email(self):
        api = UserApi(
            current_user=None,
            session=self.session,
            config=self.app_config,
        )
        u = api.create_minimal_user('bob@bob')
        # 256 char
        chars = 'o' * (256 - 6)
        with pytest.raises(TracimValidationFailed):
            email = 'b{}b@bob'.format(chars)
            u = api.update(user=u, email=email)

        # 255 char
        chars = 'o' * (255 - 6)
        email = 'b{}b@bob'.format(chars)
        u = api.update(user=u, email=email)
        assert u.email==email
Exemplo n.º 45
0
 def test_unit__update_user_email__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     assert u.email == 'bob@bob'
     u = api.update(user=u, email='bib@bib')
     assert u.email == 'bib@bib'
Exemplo n.º 46
0
 def test_unit__update_timezone__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     assert u.timezone is None
     u = api.update(user=u, timezone='Europe/Paris')
     assert u.timezone == 'Europe/Paris'
Exemplo n.º 47
0
 def test_unit__update_timezone__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     assert u.timezone is None
     u = api.update(user=u, timezone='Europe/Paris')
     assert u.timezone == 'Europe/Paris'
Exemplo n.º 48
0
 def test_unit__update_user_email__ok__nominal_case(self):
     api = UserApi(
         current_user=None,
         session=self.session,
         config=self.app_config,
     )
     u = api.create_minimal_user('bob@bob')
     assert u.email == 'bob@bob'
     u = api.update(user=u, email='bib@bib')
     assert u.email == 'bib@bib'
Exemplo n.º 49
0
    def test_unit__update_user_email__err__wrong_format(self):
        api = UserApi(
            current_user=None,
            session=self.session,
            config=self.app_config,
        )
        u = api.create_minimal_user('bob@bob')

        # 2 char
        with pytest.raises(EmailValidationFailed):
            u = api.update(user=u, email='b+b')
Exemplo n.º 50
0
 def set_profile(self, context, request: TracimRequest, hapic_data=None):
     """
     set user profile
     """
     app_config = request.registry.settings['CFG']
     uapi = UserApi(
         current_user=request.current_user,  # User
         session=request.dbsession,
         config=app_config,
     )
     gapi = GroupApi(
         current_user=request.current_user,  # User
         session=request.dbsession,
         config=app_config,
     )
     groups = [gapi.get_one_with_name(hapic_data.body.profile)]
     uapi.update(
         user=request.candidate_user,
         groups=groups,
         do_save=True,
     )
     return
Exemplo n.º 51
0
 def test_unit_update__ok_external_auth_ldap(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_user(
         email="bob@bob",
         password=None,
         name="bob",
         auth_type=AuthType.LDAP,
         timezone="+2",
         lang="en",
         do_save=True,
         do_notify=False,
     )
     api.update(
         email="bob@bob",
         user=u,
         name="bobi",
         password=None,
         auth_type=AuthType.LDAP,
         timezone="-1",
         lang="fr",
         do_save=True,
     )
     assert u.display_name == "bobi"
Exemplo n.º 52
0
 def test_unit_update__err__external_auth_ldap_set_email(self):
     api = UserApi(current_user=None, session=self.session, config=self.app_config)
     u = api.create_user(
         email="bob@bob",
         password=None,
         name="bob",
         auth_type=AuthType.LDAP,
         timezone="+2",
         lang="en",
         do_save=True,
         do_notify=False,
     )
     with pytest.raises(ExternalAuthUserEmailModificationDisallowed):
         api.update(
             email="bob@bob1",
             user=u,
             name="bobi",
             password=None,
             auth_type=AuthType.LDAP,
             timezone="-1",
             lang="fr",
             do_save=True,
         )
Exemplo n.º 53
0
 def set_profile(self, context, request: TracimRequest, hapic_data=None):
     """
     set user profile
     """
     app_config = request.registry.settings['CFG']
     uapi = UserApi(
         current_user=request.current_user,  # User
         session=request.dbsession,
         config=app_config,
     )
     gapi = GroupApi(
         current_user=request.current_user,  # User
         session=request.dbsession,
         config=app_config,
     )
     groups = [gapi.get_one_with_name(hapic_data.body.profile)]
     uapi.update(
         user=request.candidate_user,
         auth_type=request.candidate_user.auth_type,
         groups=groups,
         do_save=True,
     )
     return
Exemplo n.º 54
0
 def set_account_infos(self, context, request: TracimRequest, hapic_data=None):
     """
     Set user info data
     """
     app_config = request.registry.settings['CFG']
     uapi = UserApi(
         current_user=request.current_user,  # User
         session=request.dbsession,
         config=app_config,
     )
     user = uapi.update(
         request.current_user,
         name=hapic_data.body.public_name,
         timezone=hapic_data.body.timezone,
         lang=hapic_data.body.lang,
         do_save=True
     )
     return uapi.get_user_with_context(user)