@@ -265,17 +265,18 @@ async def update_email(*, db: AsyncSession, user_id: int, captcha: str, email: s
265265 return count
266266
267267 @staticmethod
268- async def update_password (* , db : AsyncSession , user_id : int , hash_password : str , obj : ResetPasswordParam ) -> int :
268+ async def update_password (* , db : AsyncSession , user_id : int , obj : ResetPasswordParam ) -> int :
269269 """
270270 更新当前用户密码
271271
272272 :param db: 数据库会话
273273 :param user_id: 用户 ID
274- :param hash_password: 哈希密码
275274 :param obj: 密码重置参数
276275 :return:
277276 """
278- if hash_password and not password_verify (obj .old_password , hash_password ):
277+ user = await user_dao .get (db , user_id )
278+
279+ if user .password and not password_verify (obj .old_password , user .password ):
279280 raise errors .RequestError (msg = '原密码错误' )
280281
281282 if obj .new_password != obj .confirm_password :
@@ -284,7 +285,6 @@ async def update_password(*, db: AsyncSession, user_id: int, hash_password: str,
284285 await validate_new_password (db , user_id , obj .new_password )
285286 count = await user_dao .reset_password (db , user_id , obj .new_password )
286287
287- user = await user_dao .get (db , user_id )
288288 history_obj = CreateUserPasswordHistoryParam (user_id = user .id , password = user .password )
289289 await password_security_service .save_password_history (db , history_obj )
290290 await user_dao .update_password_changed_time (db , user .id )
0 commit comments