From da3175e7bd67c33fab8c2ca6ebd51882ae15be68 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sat, 5 Dec 2020 21:30:36 +0000 Subject: [PATCH] Add email changed email --- app/blueprints/users/account.py | 11 +++++++++-- app/blueprints/users/settings.py | 6 ++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/blueprints/users/account.py b/app/blueprints/users/account.py index a5a0b21..ff92795 100644 --- a/app/blueprints/users/account.py +++ b/app/blueprints/users/account.py @@ -23,7 +23,7 @@ from wtforms import * from wtforms.validators import * from app.models import * -from app.tasks.emails import sendVerifyEmail, send_anon_email, sendUnsubscribeVerifyEmail +from app.tasks.emails import sendVerifyEmail, send_anon_email, sendUnsubscribeVerifyEmail, send_user_email from app.utils import randomString, make_flask_login_password, is_safe_url, check_password_hash, addAuditLog from passlib.pwd import genphrase @@ -284,11 +284,18 @@ def verify_email(): was_activating = not user.is_active - if user.email != ver.email and ver.email: + if ver.email and user.email != ver.email: if User.query.filter_by(email=ver.email).count() > 0: flash("Another user is already using that email", "danger") return redirect(url_for("homepage.home")) + flash("Confirmed email change", "success") + + if user.email: + send_user_email.delay(user.email, + "Email address changed", + "Your email address has changed. If you didn't request this, please contact an administrator.") + user.is_active = True user.notification_preferences = user.notification_preferences or UserNotificationPreferences(user) user.email = ver.email diff --git a/app/blueprints/users/settings.py b/app/blueprints/users/settings.py index 7bbdcd2..b2636d4 100644 --- a/app/blueprints/users/settings.py +++ b/app/blueprints/users/settings.py @@ -136,8 +136,10 @@ def handle_email_notifications(user, prefs, is_new, form): db.session.add(ver) db.session.commit() - task = sendVerifyEmail.delay(newEmail, token) - return redirect(url_for("tasks.check", id=task.id, r=url_for("users.profile", username=user.username))) + flash("Check your email to confirm it", "success") + + sendVerifyEmail.delay(newEmail, token) + return redirect(url_for("homepage.home")) db.session.commit() return redirect(url_for("users.email_notifications", username=user.username))