def email_change_confirm(request, token): user = request.user email_change = UserEmailChangeTokenGenerator() if email_change.is_valid(user, token): user.email = email_change.get_email() user.save() messages.info(request, _("Your email has been changed!")) return redirect(reverse('spirit:profile-update'))
def test_user_email_change_token_generator(self): """ Email change """ new_email = "*****@*****.**" email_change_token = UserEmailChangeTokenGenerator() token = email_change_token.generate(self.user, new_email) self.assertTrue(email_change_token.is_valid(self.user, token)) self.assertFalse(email_change_token.is_valid(self.user, "bad token")) # get new email self.assertTrue(email_change_token.is_valid(self.user, token)) self.assertEqual(email_change_token.get_email(), new_email) # Invalid for different user user2 = test_utils.create_user() self.assertFalse(email_change_token.is_valid(user2, token)) # Invalid after email change self.user.email = "*****@*****.**" self.assertFalse(email_change_token.is_valid(self.user, token))