Clear new_email on verified email change (#2383)

This commit is contained in:
Adrià Casajús 2025-02-06 10:27:35 +01:00 committed by GitHub
parent e17ae4210b
commit da93431df8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 21 additions and 0 deletions

View file

@ -353,6 +353,7 @@ def request_mailbox_email_change(
check_email_for_mailbox(new_email, user)
if email_ownership_verified:
mailbox.email = new_email
mailbox.new_email = None
else:
mailbox.new_email = new_email
emit_user_audit_log(

View file

@ -621,3 +621,23 @@ def test_change_mailbox_email_duplicate_in_another_mailbox(flask_client):
request_mailbox_email_change(user, mbox1, mail3)
with pytest.raises(mailbox_utils.MailboxError):
request_mailbox_email_change(user, mbox2, mail3)
def test_change_mailbox_verified_email_clears_pending_email(flask_client):
user = create_new_user()
domain = f"{random_string(10)}.com"
mail = f"mail_1@{domain}"
mbox1 = Mailbox.create(
email=mail,
new_email=f"oldpending_{mail}",
user_id=user.id,
verified=True,
flush=True,
)
new_email = f"new_{mail}"
out = request_mailbox_email_change(
user, mbox1, new_email, email_ownership_verified=True
)
assert out.activation is None
assert out.mailbox.email == new_email
assert out.mailbox.new_email is None