예제 #1
0
파일: user.py 프로젝트: tracim/tracim_v2
 def set_email(self,
               user: User,
               loggedin_user_password: str,
               email: str,
               do_save: bool = True):
     """
     Set email address of user if loggedin user password is correct
     :param user: User who need email changed
     :param loggedin_user_password: cleartext password of logged user (not
     same as user)
     :param email:
     :param do_save:
     :return:
     """
     if not self._user:
         raise NoUserSetted(
             'Current User should be set in UserApi to use this method'
         )  # nopep8
     if not self._user.validate_password(loggedin_user_password):  # nopep8
         raise WrongUserPassword(
             'Wrong password for authenticated user {}'.format(
                 self._user.user_id)  # nopep8
         )
     self.update(
         user=user,
         email=email,
         do_save=do_save,
     )
     return user
예제 #2
0
파일: user.py 프로젝트: inkhey/tracim
    def set_email(self,
                  user: User,
                  loggedin_user_password: str,
                  email: str,
                  do_save: bool = True) -> User:
        """
        Set email address of user if loggedin user password is correct
        :param user: User who need email changed
        :param loggedin_user_password: cleartext password of logged user (not
        same as user)
        :param email:
        :param do_save:
        :return:
        """
        if not self._user:
            raise NoUserSetted(
                "Current User should be set in UserApi to use this method")

        self._check_email_modification_allowed(user)

        if not self._user.validate_password(loggedin_user_password):
            raise WrongUserPassword(
                "Wrong password for authenticated user {}".format(
                    self._user.user_id))
        self.update(user=user, email=email, do_save=do_save)
        return user
예제 #3
0
    def set_password(self,
                     user: User,
                     loggedin_user_password: str,
                     new_password: str,
                     new_password2: str,
                     do_save: bool = True):
        """
        Set User password if logged-in user password is correct
        and both new_password are the same.
        :param user: User who need password changed
        :param loggedin_user_password: cleartext password of logged user (not
        same as user)
        :param new_password: new password for user
        :param new_password2: should be same as new_password
        :param do_save: should we save new user password ?
        :return:
        """

        if not self._user:
            raise NoUserSetted(
                'Current User should be set in UserApi to use this method'
            )  # nopep8

        self._check_password_modification_allowed(self._user)
        if not self._user.validate_password(loggedin_user_password):  # nopep8
            raise WrongUserPassword(
                'Wrong password for authenticated user {}'.format(
                    self._user.user_id)  # nopep8
            )
        if new_password != new_password2:
            raise PasswordDoNotMatch('Passwords given are different')

        self.update(
            user=user,
            password=new_password,
            do_save=do_save,
        )
        if do_save:
            # TODO - G.M - 2018-07-24 - Check why commit is needed here
            self.save(user)
        return user
예제 #4
0
파일: user.py 프로젝트: inkhey/tracim
    def set_username(self,
                     user: User,
                     loggedin_user_password: str,
                     username: str,
                     do_save: bool = True) -> User:
        """
        Set username of user if loggedin user password is correct
        :param user: User who need email changed
        :param loggedin_user_password: cleartext password of logged user (not
        same as user)
        :param username: new username
        :param do_save: if True, flush database session
        :return:
        """
        if not self._user:
            raise NoUserSetted(
                "Current User should be set in UserApi to use this method")

        if not self._user.validate_password(loggedin_user_password):
            raise WrongUserPassword(
                "Wrong password for authenticated user {}".format(
                    self._user.user_id))
        self.update(user=user, username=username, do_save=do_save)
        return user