diff --git a/common/djangoapps/student/models.py b/common/djangoapps/student/models.py index 798f2321025e7db7e9a2ee829b4a32ad8895bd23..214c8d8a97d346c023c2f6f730e086ac08d8fd32 100644 --- a/common/djangoapps/student/models.py +++ b/common/djangoapps/student/models.py @@ -2750,3 +2750,14 @@ class AccountRecovery(models.Model): db_table = "auth_accountrecovery" objects = AccountRecoveryManager() + + def update_recovery_email(self, email): + """ + Update the secondary email address on the instance to the email in the argument. + + Arguments: + email (str): New email address to be set as the secondary email address. + """ + self.secondary_email = email + self.is_active = False + self.save() diff --git a/openedx/core/djangoapps/user_api/accounts/api.py b/openedx/core/djangoapps/user_api/accounts/api.py index d1c09f312cc4a48b2034af0f48ea20cdb6628715..d49cfe8367292d11d1db070c4d7e217bdb0d48fb 100644 --- a/openedx/core/djangoapps/user_api/accounts/api.py +++ b/openedx/core/djangoapps/user_api/accounts/api.py @@ -209,8 +209,7 @@ def update_account_settings(requesting_user, update, username=None): "user_message": text_type(err) } else: - account_recovery.secondary_email = update["secondary_email"] - account_recovery.save() + account_recovery.update_recovery_email(update["secondary_email"]) # If the user asked to change full name, validate it if changing_full_name: