def test_credentials_change(self): """changedcredentials module allows for credentials change""" User = get_user_model() test_user = User.objects.create_user('Bob', '*****@*****.**', 'pass123') credentials_token = changedcredentials.cache_new_credentials( test_user, '*****@*****.**', 'newpass123') new_credentials = changedcredentials.get_new_credentials( test_user, credentials_token) self.assertEqual(new_credentials['email'], '*****@*****.**') self.assertEqual(new_credentials['password'], 'newpass123')
def change_email_password(request): form = ChangeEmailPasswordForm() if request.method == 'POST': form = ChangeEmailPasswordForm(request.POST, user=request.user) if form.is_valid(): new_email = '' new_password = '' # Store original data old_email = request.user.email old_password = request.user.password # Assign new creds to user temporarily if form.cleaned_data['new_email']: request.user.set_email(form.cleaned_data['new_email']) new_email = request.user.email if form.cleaned_data['new_password']: request.user.set_password(form.cleaned_data['new_password']) new_password = request.user.password request.user.email = old_email request.user.password = old_password credentials_token = cache_new_credentials(request.user, new_email, new_password) mail_subject = _("Confirm changes to %(user)s account " "on %(forum_title)s forums") subject_formats = { 'user': request.user.username, 'forum_title': settings.forum_name } mail_subject = mail_subject % subject_formats if new_email: # finally override email before sending message request.user.email = new_email mail_user(request, request.user, mail_subject, 'misago/emails/change_email_password', {'credentials_token': credentials_token}) message = _("E-mail was sent to %(email)s with a link that " "you have to click to confirm changes.") messages.info(request, message % {'email': request.user.email}) return redirect('misago:usercp_change_email_password') return render(request, 'misago/usercp/change_email_password.html', {'form': form})
def change_email_password(request): form = ChangeEmailPasswordForm() if request.method == 'POST': form = ChangeEmailPasswordForm(request.POST, user=request.user) if form.is_valid(): new_email = '' new_password = '' # Store original data old_email = request.user.email old_password = request.user.password # Assign new creds to user temporarily if form.cleaned_data['new_email']: request.user.set_email(form.cleaned_data['new_email']) new_email = request.user.email if form.cleaned_data['new_password']: request.user.set_password(form.cleaned_data['new_password']) new_password = request.user.password request.user.email = old_email request.user.password = old_password credentials_token = cache_new_credentials( request.user, new_email, new_password) mail_subject = _("Confirm changes to %(user)s account " "on %(forum_title)s forums") subject_formats = {'user': request.user.username, 'forum_title': settings.forum_name} mail_subject = mail_subject % subject_formats if new_email: # finally override email before sending message request.user.email = new_email mail_user(request, request.user, mail_subject, 'misago/emails/change_email_password', {'credentials_token': credentials_token}) message = _("E-mail was sent to %(email)s with a link that " "you have to click to confirm changes.") messages.info(request, message % {'email': request.user.email}) return redirect('misago:usercp_change_email_password') return render(request, 'misago/usercp/change_email_password.html', {'form': form})