mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
invitations: Fix email validation errors for deactivated accounts.
This provides a much clearer error message when trying to invite a user who has a deactivated account. Fixes part of #8144.
This commit is contained in:
committed by
Tim Abbott
parent
62007d3e38
commit
e7fb19c8b0
@@ -4754,9 +4754,10 @@ def validate_email_for_realm(target_realm: Realm, email: str) -> None:
|
|||||||
if existing_user_profile.is_mirror_dummy:
|
if existing_user_profile.is_mirror_dummy:
|
||||||
raise AssertionError("Mirror dummy user is already active!")
|
raise AssertionError("Mirror dummy user is already active!")
|
||||||
# Other users should not already exist at all.
|
# Other users should not already exist at all.
|
||||||
raise ValidationError('%s already has an account' % (email,))
|
raise ValidationError('%s already has an account' % (email,), code = _("Already has an account."))
|
||||||
elif not existing_user_profile.is_mirror_dummy:
|
elif not existing_user_profile.is_mirror_dummy:
|
||||||
raise ValidationError('The account for %s has been deactivated' % (email,))
|
raise ValidationError('The account for %s has been deactivated' % (email,),
|
||||||
|
code = _("Account has been deactivated."))
|
||||||
|
|
||||||
def validate_email(user_profile: UserProfile, email: str) -> Tuple[Optional[str], Optional[str]]:
|
def validate_email(user_profile: UserProfile, email: str) -> Tuple[Optional[str], Optional[str]]:
|
||||||
try:
|
try:
|
||||||
@@ -4775,8 +4776,8 @@ def validate_email(user_profile: UserProfile, email: str) -> Tuple[Optional[str]
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
validate_email_for_realm(user_profile.realm, email)
|
validate_email_for_realm(user_profile.realm, email)
|
||||||
except ValidationError:
|
except ValidationError as error:
|
||||||
return None, _("Already has an account.")
|
return None, (error.code)
|
||||||
|
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
|
|||||||
@@ -3041,7 +3041,7 @@ class EmailValidatorTestCase(ZulipTestCase):
|
|||||||
cordelia.save()
|
cordelia.save()
|
||||||
|
|
||||||
_, error = validate_email(inviter, cordelia.email)
|
_, error = validate_email(inviter, cordelia.email)
|
||||||
self.assertEqual(error, 'Already has an account.')
|
self.assertEqual(error, 'Account has been deactivated.')
|
||||||
|
|
||||||
_, error = validate_email(inviter, 'fred-is-fine@zulip.com')
|
_, error = validate_email(inviter, 'fred-is-fine@zulip.com')
|
||||||
self.assertEqual(error, None)
|
self.assertEqual(error, None)
|
||||||
|
|||||||
Reference in New Issue
Block a user