fix: 解决手机号加密导致忘记密码判断总是失败问题

pull/12509/head
jiangweidong 2024-01-08 17:16:26 +08:00 committed by Bryan
parent 496b72aaee
commit 630bb56601
1 changed files with 7 additions and 4 deletions

View File

@ -28,9 +28,13 @@ class UserResetPasswordSendCodeApi(CreateAPIView):
serializer_class = ResetPasswordCodeSerializer serializer_class = ResetPasswordCodeSerializer
@staticmethod @staticmethod
def is_valid_user(**kwargs): def is_valid_user(username, **attr_query):
user = get_object_or_none(User, **kwargs) user = get_object_or_none(User, username=username)
if not user: valid = True
for attr, value in attr_query.items():
if getattr(user, attr, None) != value:
valid = False
if not valid:
err_msg = _('User does not exist: {}').format(_("No user matched")) err_msg = _('User does not exist: {}').format(_("No user matched"))
return None, err_msg return None, err_msg
if not user.is_local: if not user.is_local:
@ -56,7 +60,6 @@ class UserResetPasswordSendCodeApi(CreateAPIView):
target = serializer.validated_data[form_type] target = serializer.validated_data[form_type]
if form_type == 'sms': if form_type == 'sms':
query_key = 'phone' query_key = 'phone'
target = target.lstrip('+')
else: else:
query_key = form_type query_key = form_type
user, err = self.is_valid_user(username=username, **{query_key: target}) user, err = self.is_valid_user(username=username, **{query_key: target})