fix: prevent user creation when only existing users may log in

This commit is contained in:
wangruidong
2026-07-16 17:51:40 +08:00
committed by Jiangjie Bai
parent b587d9136d
commit 93bd44336e

View File

@@ -51,13 +51,14 @@ class BaseLoginCallbackView(AuthMixin, FlashMessageMixin, IMClientMixin, View):
user = None
user_attr = self.client.get_user_detail(user_id, **kwargs)
try:
exists = User.objects.filter(username=user_attr['username']).exists()
if not check_only_allow_exist_user_auth(not exists):
return None, (self.msg_client_err, self.request.error_message)
user, create = User.objects.get_or_create(
username=user_attr['username'], defaults=user_attr
)
if not check_only_allow_exist_user_auth(create):
return user, (self.msg_client_err, self.request.error_message)
setattr(user, f'{self.user_type}_id', user_id)
if create:
setattr(user, 'source', self.user_type)