django-user-accounts icon indicating copy to clipboard operation
django-user-accounts copied to clipboard

UX: Changing Primary Email from Account Settings

Open stepmr opened this issue 11 years ago • 3 comments

Settings: ACCOUNT_EMAIL_UNIQUE = True ACCOUNT_EMAIL_CONFIRMATION_REQUIRED = True

Usecase: If a user changes their email in account settings, they receive a "Account settings updated." success message. The email is changed and the confirmation sent. However, the new email is saved even if it has not been confirmed.

Issues:

  1. If a user has changed their email to an incorrect one, logged out AND forgotten their password :) They have no way of reseting their password.
  2. If a project is using email authentication, a user could change their email to an incorrect one and have no way of accessing their account.

Potential UX Fixes:

  1. Instead of a success message, the user could receive the something similar to the "email_confirmation_sent" message. Like "To save these changes, please confirm your new email address. A confirmation email has been sent to {email}".
  2. Instead of applying the changed email right away, wait for it to be confirmed. If a user logs out without confirming, the previous verified email should still be the one associated with the account. Maybe present the user with a message like “Last time you were here, we were unable to confirm your change in email address.” (this could be better, listing the both emails, the date, and allowing them to resend the confirmation).

stepmr avatar Feb 16 '14 21:02 stepmr

An easier way would be to let the user enter the email twice, and log him out afterwards. But I think your suggestion is nicer.

msander avatar Jan 29 '15 12:01 msander

I made initial commit to play around with fixing this. If the changes look fine, I'll clean it up and submit a PR.

k4ml avatar Sep 07 '15 15:09 k4ml

@k4ml thanks for the contribution! I will take a look at your changes more in-depth in the next couple of days during DjangoCon.

brosner avatar Sep 08 '15 02:09 brosner