Beispiel #1
0
 async def on_update(cls,
                     info: QueryInfo,
                     values: 'ValuesToWrite',
                     when_before_update: List[Callable[[IDList],
                                                       Awaitable]],
                     when_complete: List[Callable[[], Awaitable]],
                     perm: PermInfo = None):
     if 'password' in values:
         ret = UserModel.gen_password_and_salt(values['password'])
         values.update(ret)
Beispiel #2
0
    async def validate_password_reset(self):
        """
        忘记密码后,进入重设流程时,通过此接口提交校验码和新密码
        :return:
        """
        vpost: ValidatePasswordResetPostDataModel = self._.validated_post

        user = await UserModel.check_reset_key(vpost.uid, vpost.code)
        if user:
            info = UserModel.gen_password_and_salt(vpost.password)
            user.password = info['password']
            user.salt = info['salt']
            user.reset_key = None
            user.save()

            UserToken.clear_by_user_id(user.id)
            t: UserToken = await self.setup_user_token(user.id)
            self.finish(RETCODE.SUCCESS, {'id': user.id, 'nickname': user.nickname, 'access_token': t.get_token()})
        else:
            self.finish(RETCODE.FAILED)