Exemplo n.º 1
0
    def insert(self):
        g2 = self._session.query(Group).filter(
            Group.group_name == "trusted-users").one()

        lawrence = User()
        lawrence.display_name = "Lawrence L."
        lawrence.email = "*****@*****.**"
        lawrence.password = "******"
        self._session.add(lawrence)
        g2.users.append(lawrence)

        bob = User()
        bob.display_name = "Bob i."
        bob.email = "*****@*****.**"
        bob.password = "******"
        self._session.add(bob)
        g2.users.append(bob)

        g1 = self._session.query(Group).filter(
            Group.group_name == "users").one()
        reader = User()
        reader.display_name = "John Reader"
        reader.email = "*****@*****.**"
        reader.password = "******"
        self._session.add(reader)
        g1.users.append(reader)
Exemplo n.º 2
0
    def insert(self):
        g2 = self._session.query(Group).\
            filter(Group.group_name == 'trusted-users').one()

        lawrence = User()
        lawrence.display_name = 'Lawrence L.'
        lawrence.email = '*****@*****.**'
        lawrence.password = '******'
        self._session.add(lawrence)
        g2.users.append(lawrence)

        bob = User()
        bob.display_name = 'Bob i.'
        bob.email = '*****@*****.**'
        bob.password = '******'
        self._session.add(bob)
        g2.users.append(bob)

        g1 = self._session.query(Group).\
            filter(Group.group_name == 'users').one()
        reader = User()
        reader.display_name = 'John Reader'
        reader.email = '*****@*****.**'
        reader.password = '******'
        self._session.add(reader)
        g1.users.append(reader)
Exemplo n.º 3
0
    def insert(self):
        g2 = self._session.query(Group).\
            filter(Group.group_name == 'trusted-users').one()

        lawrence = User()
        lawrence.display_name = 'Lawrence L.'
        lawrence.email = '*****@*****.**'
        lawrence.password = '******'
        self._session.add(lawrence)
        g2.users.append(lawrence)

        bob = User()
        bob.display_name = 'Bob i.'
        bob.email = '*****@*****.**'
        bob.password = '******'
        self._session.add(bob)
        g2.users.append(bob)

        g1 = self._session.query(Group).\
            filter(Group.group_name == 'users').one()
        reader = User()
        reader.display_name = 'John Reader'
        reader.email = '*****@*****.**'
        reader.password = '******'
        self._session.add(reader)
        g1.users.append(reader)
Exemplo n.º 4
0
    def insert(self):

        lawrence = User()
        lawrence.display_name = "Lawrence L."
        lawrence.email = "*****@*****.**"
        lawrence.password = "******"
        lawrence.profile = Profile.TRUSTED_USER
        lawrence.config = UserConfig()
        self._session.add(lawrence)

        bob = User()
        bob.display_name = "Bob i."
        bob.username = "******"
        bob.email = "*****@*****.**"
        bob.password = "******"
        bob.profile = Profile.TRUSTED_USER
        bob.config = UserConfig()
        self._session.add(bob)

        reader = User()
        reader.display_name = "John Reader"
        reader.email = "*****@*****.**"
        reader.password = "******"
        reader.profile = Profile.USER
        reader.config = UserConfig()
        self._session.add(reader)
Exemplo n.º 5
0
 def insert(self):
     u = User()
     u.display_name = "Global manager"
     u.email = "*****@*****.**"
     u.password = "******"
     u.profile = Profile.ADMIN
     self._session.add(u)
Exemplo n.º 6
0
    def insert(self):
        u = User()
        u.display_name = 'Global manager'
        u.email = '*****@*****.**'
        u.password = '******'
        self._session.add(u)
        uapi = UserApi(session=self._session,
                       config=self._config,
                       current_user=u)
        uapi.execute_created_user_actions(u)

        g1 = Group()
        g1.group_id = 1
        g1.group_name = 'users'
        g1.display_name = 'Users'
        g1.users.append(u)
        self._session.add(g1)

        g2 = Group()
        g2.group_id = 2
        g2.group_name = 'trusted-users'
        g2.display_name = 'Trusted Users'
        g2.users.append(u)
        self._session.add(g2)

        g3 = Group()
        g3.group_id = 3
        g3.group_name = 'administrators'
        g3.display_name = 'Administrators'
        g3.users.append(u)
        self._session.add(g3)
Exemplo n.º 7
0
    def insert(self):
        u = User()
        u.display_name = "Global manager"
        u.email = "*****@*****.**"
        u.password = "******"
        self._session.add(u)

        g1 = Group()
        g1.group_id = 1
        g1.group_name = "users"
        g1.display_name = "Users"
        g1.users.append(u)
        self._session.add(g1)

        g2 = Group()
        g2.group_id = 2
        g2.group_name = "trusted-users"
        g2.display_name = "Trusted Users"
        g2.users.append(u)
        self._session.add(g2)

        g3 = Group()
        g3.group_id = 3
        g3.group_name = "administrators"
        g3.display_name = "Administrators"
        g3.users.append(u)
        self._session.add(g3)
Exemplo n.º 8
0
    def insert(self):
        u = User()
        u.display_name = 'Global manager'
        u.email = '*****@*****.**'
        u.password = '******'
        self._session.add(u)
        uapi = UserApi(
            session=self._session,
            config=self._config,
            current_user=u)
        uapi.execute_created_user_actions(u)

        g1 = Group()
        g1.group_id = 1
        g1.group_name = 'users'
        g1.display_name = 'Users'
        g1.users.append(u)
        self._session.add(g1)

        g2 = Group()
        g2.group_id = 2
        g2.group_name = 'trusted-users'
        g2.display_name = 'Trusted Users'
        g2.users.append(u)
        self._session.add(g2)

        g3 = Group()
        g3.group_id = 3
        g3.group_name = 'administrators'
        g3.display_name = 'Administrators'
        g3.users.append(u)
        self._session.add(g3)
Exemplo n.º 9
0
 def insert(self):
     u = User()
     u.display_name = "Global manager"
     u.username = "******"
     u.email = "*****@*****.**"
     u.password = "******"
     u.profile = Profile.ADMIN
     u.config = UserConfig()
     self._session.add(u)
Exemplo n.º 10
0
 def test_unit__create_minimal_user_and_set_email__ok__nominal_case(self):
     u = User()
     u.email = "bob@bob"
     u.password = "******"
     u.auth_type = AuthType.INTERNAL
     u.display_name = "bob"
     api = UserApi(current_user=u, session=self.session, config=self.app_config)
     assert u.email == "bob@bob"
     api.set_email(u, "pass", "newbobemail@bob")
     assert u is not None
     assert u.email == "newbobemail@bob"
Exemplo n.º 11
0
    def test_unit__validate_password__false__empty_password(self):
        """
        Check if validate_password failed if not password
        """
        name = 'Damien'
        email = '*****@*****.**'
        password = None

        user = User()
        user.display_name = name
        user.email = email
        user.password = password

        assert user.validate_password(password) is False
        assert user.validate_password('') is False
Exemplo n.º 12
0
    def test_unit__validate_password__false__bad_password(self):
        """
        Check if validate_password can correctly check if password is
        an uncorrect correct one
        """
        name = 'Damien'
        email = '*****@*****.**'
        password = '******'

        user = User()
        user.display_name = name
        user.email = email
        user.password = password

        assert user.validate_password('uncorrect_password') is False
Exemplo n.º 13
0
    def test_unit__validate_password__false__bad_password(self):
        """
        Check if validate_password can correctly check if password is
        an uncorrect correct one
        """
        name = 'Damien'
        email = '*****@*****.**'
        password = '******'

        user = User()
        user.display_name = name
        user.email = email
        user.password = password

        assert user.validate_password('uncorrect_password') is False
Exemplo n.º 14
0
    def test_unit__validate_password__false__empty_password(self):
        """
        Check if validate_password failed if not password
        """
        name = "Damien"
        email = "*****@*****.**"
        password = None

        user = User()
        user.display_name = name
        user.email = email
        user.password = password

        assert user.validate_password(password) is False
        assert user.validate_password("") is False
Exemplo n.º 15
0
 def test_unit__create_minimal_user_and_set_password__ok__nominal_case(self):
     u = User()
     u.email = 'bob@bob'
     u.password = '******'
     u.auth_type = AuthType.INTERNAL
     u.display_name = 'bob'
     api = UserApi(
         current_user=u,
         session=self.session,
         config=self.app_config,
     )
     assert u.email == 'bob@bob'
     api.set_email(u,'pass','newbobemail@bob')
     assert u is not None
     assert u.email == 'newbobemail@bob'
Exemplo n.º 16
0
    def test_unit__validate_password__false__bad_password(self):
        """
        Check if validate_password can correctly check if password is
        an uncorrect correct one
        """
        name = "Damien"
        email = "*****@*****.**"
        password = "******"

        user = User()
        user.display_name = name
        user.email = email
        user.password = password

        assert user.validate_password("uncorrect_password") is False
Exemplo n.º 17
0
 def test_unit__create_minimal_user_and_set_password__ok__nominal_case(
     self, session, app_config
 ):
     u = User()
     u.email = "bob@bob"
     u.password = "******"
     u.auth_type = AuthType.INTERNAL
     u.display_name = "bob"
     api = UserApi(current_user=u, session=session, config=app_config)
     assert u.validate_password("pass")
     api.set_password(u, "pass", "newpass", "newpass")
     assert u is not None
     assert u.email == "bob@bob"
     assert u.display_name == "bob"
     assert u.validate_password("newpass")
     assert not u.validate_password("pass")
Exemplo n.º 18
0
 def test_unit__create_minimal_user_and_set_password__ok__nominal_case(
         self):
     u = User()
     u.email = 'bob@bob'
     u.password = '******'
     u.auth_type = AuthType.INTERNAL
     u.display_name = 'bob'
     api = UserApi(
         current_user=u,
         session=self.session,
         config=self.app_config,
     )
     assert u.email == 'bob@bob'
     api.set_email(u, 'pass', 'newbobemail@bob')
     assert u is not None
     assert u.email == 'newbobemail@bob'
Exemplo n.º 19
0
    def test__unit__validate_password__ok__nominal_case(self):
        """
        Check if validate_password can correctly check if password i the correct
        one
        """

        name = "Damien"
        email = "*****@*****.**"
        password = "******"

        user = User()
        user.display_name = name
        user.email = email
        user.password = password

        assert user.validate_password(password) is True
Exemplo n.º 20
0
    def test__unit__validate_password__ok__nominal_case(self):
        """
        Check if validate_password can correctly check if password i the correct
        one
        """

        name = 'Damien'
        email = '*****@*****.**'
        password = '******'

        user = User()
        user.display_name = name
        user.email = email
        user.password = password

        assert user.validate_password(password) is True
Exemplo n.º 21
0
    def test_unit__password__ok__nominal_case(self, session):
        """
        Check if password can be set and hashed password
        can be retrieve. Verify if hashed password is not
        same as password.
        """
        name = "Damien"
        email = "*****@*****.**"
        password = "******"

        user = User()
        user.display_name = name
        user.email = email
        assert user._password is None
        user.password = password
        assert user._password is not None
        assert user._password != password
        assert user.password == user._password
Exemplo n.º 22
0
    def test_unit__password__ok__nominal_case(self):
        """
        Check if password can be set and hashed password
        can be retrieve. Verify if hashed password is not
        same as password.
        """
        name = 'Damien'
        email = '*****@*****.**'
        password = '******'

        user = User()
        user.display_name = name
        user.email = email
        assert user._password is None
        user.password = password
        assert user._password is not None
        assert user._password != password
        assert user.password == user._password
Exemplo n.º 23
0
    def update(
        self,
        user: User,
        name: str = None,
        email: str = None,
        password: str = None,
        timezone: str = None,
        lang: str = None,
        groups: typing.Optional[typing.List[Group]] = None,
        do_save=True,
    ) -> User:
        if name is not None:
            user.display_name = name

        if email is not None and email != user.email:
            self._check_email(email)
            user.email = email

        if password is not None:
            user.password = password

        if timezone is not None:
            user.timezone = timezone

        if lang is not None:
            user.lang = lang

        if groups is not None:
            if self._user and self._user == user:
                raise UserCantChangeIsOwnProfile(
                    "User {} can't change is own profile".format(user.user_id))
            # INFO - G.M - 2018-07-18 - Delete old groups
            for group in user.groups:
                if group not in groups:
                    user.groups.remove(group)
            # INFO - G.M - 2018-07-18 - add new groups
            for group in groups:
                if group not in user.groups:
                    user.groups.append(group)

        if do_save:
            self.save(user)

        return user
Exemplo n.º 24
0
    def update(
            self,
            user: User,
            name: str=None,
            email: str=None,
            password: str=None,
            timezone: str=None,
            lang: str=None,
            auth_type: AuthType = None,
            groups: typing.Optional[typing.List[Group]]=None,
            do_save=True,
    ) -> User:
        validator = TracimValidator()
        validator.add_validator('name', name, user_public_name_validator)
        validator.add_validator('password', password, user_password_validator)
        validator.add_validator('email', email, user_email_validator)
        validator.add_validator('timezone', timezone, user_timezone_validator)
        validator.add_validator('lang', lang, user_lang_validator)
        validator.validate_all()

        if name is not None:
            user.display_name = name

        if auth_type is not None:
            if auth_type not in [AuthType.UNKNOWN, AuthType.REMOTE] and not auth_type in self._config.AUTH_TYPES:
                raise UserAuthTypeDisabled(
                    'Can\'t update user "{}" auth_type with unavailable value "{}".'.format(
                        user.email,
                        auth_type
                    )
                )
            user.auth_type = auth_type

        if email is not None and email != user.email:
            self._check_email_modification_allowed(user)
            self._check_email(email)
            user.email = email

        if password is not None:
            self._check_password_modification_allowed(user)
            user.password = password

        if timezone is not None:
            user.timezone = timezone

        if lang is not None:
            user.lang = lang

        if groups is not None:
            if self._user and self._user == user:
                raise UserCantChangeIsOwnProfile(
                    "User {} can't change is own profile".format(user.user_id)
                )
            # INFO - G.M - 2018-07-18 - Delete old groups
            for group in user.groups:
                if group not in groups:
                    user.groups.remove(group)
            # INFO - G.M - 2018-07-18 - add new groups
            for group in groups:
                if group not in user.groups:
                    user.groups.append(group)

        if do_save:
            self.save(user)

        return user
Exemplo n.º 25
0
    def update(
        self,
        user: User,
        name: str = None,
        email: str = None,
        password: str = None,
        timezone: str = None,
        lang: str = None,
        auth_type: AuthType = None,
        groups: typing.Optional[typing.List[Group]] = None,
        do_save=True,
    ) -> User:
        validator = TracimValidator()
        validator.add_validator('name', name, user_public_name_validator)
        validator.add_validator('password', password, user_password_validator)
        validator.add_validator('email', email, user_email_validator)
        validator.add_validator('timezone', timezone, user_timezone_validator)
        validator.add_validator('lang', lang, user_lang_validator)
        validator.validate_all()

        if name is not None:
            user.display_name = name

        if auth_type is not None:
            if auth_type not in [
                    AuthType.UNKNOWN, AuthType.REMOTE
            ] and not auth_type in self._config.AUTH_TYPES:
                raise UserAuthTypeDisabled(
                    'Can\'t update user "{}" auth_type with unavailable value "{}".'
                    .format(user.email, auth_type))
            user.auth_type = auth_type

        if email is not None and email != user.email:
            self._check_email_modification_allowed(user)
            self._check_email(email)
            user.email = email

        if password is not None:
            self._check_password_modification_allowed(user)
            user.password = password

        if timezone is not None:
            user.timezone = timezone

        if lang is not None:
            user.lang = lang

        if groups is not None:
            if self._user and self._user == user:
                raise UserCantChangeIsOwnProfile(
                    "User {} can't change is own profile".format(user.user_id))
            # INFO - G.M - 2018-07-18 - Delete old groups
            for group in user.groups:
                if group not in groups:
                    user.groups.remove(group)
            # INFO - G.M - 2018-07-18 - add new groups
            for group in groups:
                if group not in user.groups:
                    user.groups.append(group)

        if do_save:
            self.save(user)

        return user
Exemplo n.º 26
0
    def update(
        self,
        user: User,
        name: str = None,
        email: str = None,
        password: str = None,
        timezone: str = None,
        lang: str = None,
        auth_type: AuthType = None,
        profile: typing.Optional[Profile] = None,
        allowed_space: typing.Optional[int] = None,
        username: str = None,
        do_save=True,
    ) -> User:
        """Update given user instance with given parameters"""
        validator = TracimValidator()
        validator.add_validator("name", name, user_public_name_validator)
        validator.add_validator("password", password, user_password_validator)
        validator.add_validator("email", email, user_email_validator)
        validator.add_validator("username", name, user_username_validator)
        validator.add_validator("timezone", timezone, user_timezone_validator)
        validator.add_validator("lang", lang, user_lang_validator)
        validator.validate_all()

        if name is not None:
            user.display_name = name

        if auth_type is not None:
            if (auth_type not in [AuthType.UNKNOWN, AuthType.REMOTE]
                    and auth_type not in self._config.AUTH_TYPES):
                raise UserAuthTypeDisabled(
                    'Can\'t update user "{}" auth_type with unavailable value "{}".'
                    .format(user.login, auth_type))
            user.auth_type = auth_type

        if email is not None:
            lowercase_email = email.lower()
            if lowercase_email != user.email:
                self._check_email_modification_allowed(user)
                self._check_email(lowercase_email)
                user.email = lowercase_email

        if username is not None:
            if username != user.username:
                self.check_username(username)
                user.username = username

        if password is not None:
            self._check_password_modification_allowed(user)
            user.password = password

        if timezone is not None:
            user.timezone = timezone

        if lang is not None:
            user.lang = lang

        if profile is not None:
            if self._user and self._user == user:
                raise UserCantChangeIsOwnProfile(
                    "User {} can't change is own profile".format(user.user_id))
            user.profile = profile

        if allowed_space is not None:
            user.allowed_space = allowed_space

        if do_save:
            self.save(user)

        return user