Ejemplo n.º 1
0
Archivo: models.py Proyecto: verteen/z9
 def password(self, value):
     """
     Устанавливает пароль в зашифрованном виде
     @param value: Пароль в исходном виде
     """
     # noinspection PyAttributeOutsideInit
     self.password_raw = md5(value)
Ejemplo n.º 2
0
Archivo: models.py Proyecto: verteen/z9
 def set_new_token(self) -> str:
     """
     Генерирует новый токен для аккаунта и сохраняет его
     @return: Новый сгенерированный токен аккаунта
     """
     # noinspection PyAttributeOutsideInit
     self.token = md5("%s%d" % (str(datetime.now()), random.choice(range(100))))
     self.save()
     return self.token
Ejemplo n.º 3
0
Archivo: tests.py Proyecto: verteen/z9
    def test_change_password(self):
        """ Сервис аутентификации позволяет менять пароль пользователя """
        account = Account({"login": "******", "password": "******", "token": "12345678"}).save()
        self.assertRaises(IncorrectLogin, AuthentificationService().change_password, "weird_login")

        new_password = AuthentificationService().change_password("login")
        account.refresh()
        self.assertNotEqual("12345", account.password)
        self.assertEqual(md5(new_password), account.password)
Ejemplo n.º 4
0
Archivo: models.py Proyecto: verteen/z9
    def authentificate_by_credentials(cls, login, password) -> Account:
        """
        Выполняет аутентификацию пользователя по переданным логину и паролю
        @param login: Логин
        @param password: Пароль
        @raise IncorrectLogin: Если не найдено соответствия по логину
        @raise IncorrectPassword: Если соответствие по логину найдено, но хеши паролей не совпадают
        @return: Аккаунт пользователя

        """
        account_found = Accounts().get_item({"login": login})
        if account_found:
            if account_found.password != md5(password):
                raise IncorrectPassword()
            return account_found
        else:
            raise IncorrectLogin()
Ejemplo n.º 5
0
Archivo: models.py Proyecto: verteen/z9
 def set_new_password(cls, account, current_password: str, new_password: str, new_password2: str) -> str:
     """
     Меняет пароль аккаунта на новый
     @param account: Объект аккаунта пользователя
     @param current_password: Текущий пароль
     @param new_password: Новый пароль
     @param new_password2: Подтверждение нового пароля
     @return: Новый пароль
     """
     if not account:
         raise IncorrectLogin()
     if account.password != md5(current_password):
         raise IncorrectPassword()
     if new_password != new_password2:
         raise NewPasswordsMismatch()
     account.password = new_password
     account.save()
     return True