perf: Log IntegrityError details during user authentication

This commit is contained in:
wangruidong 2025-07-11 18:08:44 +08:00 committed by Bryan
parent e1f5d3c737
commit cc4be36752
4 changed files with 6 additions and 2 deletions

View File

@ -171,9 +171,10 @@ class OIDCAuthCallbackView(View, FlashMessageMixin):
logger.debug(log_prompt.format('Process authenticate'))
try:
user = auth.authenticate(nonce=nonce, request=request, code_verifier=code_verifier)
except IntegrityError:
except IntegrityError as e:
title = _("OpenID Error")
msg = _('Please check if a user with the same username or email already exists')
logger.error(e, exc_info=True)
response = self.get_failed_response('/', title, msg)
return response
if user:

View File

@ -278,9 +278,10 @@ class Saml2AuthCallbackView(View, PrepareRequestMixin, FlashMessageMixin):
saml_user_data = self.get_attributes(saml_instance)
try:
user = auth.authenticate(request=request, saml_user_data=saml_user_data)
except IntegrityError:
except IntegrityError as e:
title = _("SAML2 Error")
msg = _('Please check if a user with the same username or email already exists')
logger.error(e, exc_info=True)
response = self.get_failed_response('/', title, msg)
return response
if user and user.is_valid:

View File

@ -150,6 +150,7 @@ class BaseBindCallbackView(FlashMessageMixin, IMClientMixin, View):
user.save()
except IntegrityError as e:
msg = _('The %s is already bound to another user') % self.auth_type_label
logger.error(e, exc_info=True)
response = self.get_failed_response(redirect_url, msg, msg)
return response

View File

@ -144,6 +144,7 @@ class DingTalkQRBindCallbackView(DingTalkQRMixin, View):
user.save()
except IntegrityError as e:
msg = _('The DingTalk is already bound to another user')
logger.error(e, exc_info=True)
response = self.get_failed_response(redirect_url, msg, msg)
return response