fix(auth): VerifyPassword 形参遮蔽 Password 模型导致 AttributeError

- AdminUserManager.VerifyPassword 的形参名为 Password,遮蔽了模块级导入的 Password 模型
- 导致 Password.objects 变成对 str 取属性:AttributeError: 'str' object has no attribute 'objects'
- 影响面:/API/Ehrm/UnlockIdCard、/API/SiteUserManagement/VerifyPassword、2FA 设置/禁用(均走 AuthManager.VerifyUserPassword)
- 修法:形参改名 PlainPassword,模型 Password 恢复可见
This commit is contained in:
TermiNexus committed 2026-10-02 16:31:52 +08:00
1 parent 298cfe59d0
commit 9fd38f3c8e
1 file changed
+5 -2
+5 -2
View File
@@ -2541,9 +2541,12 @@ class AdminUserManager:
return True, '密码重置成功' return True, '密码重置成功'
@staticmethod @staticmethod
def VerifyPassword(UserUUID, Password): def VerifyPassword(UserUUID, PlainPassword):
"""校验用户密码(独立 Password 表) """校验用户密码(独立 Password 表)
注意:形参**不能**叫 `Password` —— 会遮蔽模块级导入的 `Password` 模型
(`Password.objects` 会变成对 str 取属性,抛 AttributeError)。
Returns: Returns:
(用户记录存在?, 密码是否匹配) (用户记录存在?, 密码是否匹配)
""" """
@@ -2551,7 +2554,7 @@ class AdminUserManager:
if pw_obj is None: if pw_obj is None:
return False, False return False, False
try: try:
return True, VerifyPassword(Password, pw_obj.Password) return True, VerifyPassword(PlainPassword, pw_obj.Password)
except (ValueError, TypeError): except (ValueError, TypeError):
return True, False return True, False