From a713555915be5b0286578ea6edcbb6aff69501d5 Mon Sep 17 00:00:00 2001 From: yackob03 Date: Tue, 1 Oct 2013 15:43:16 -0400 Subject: [PATCH] Notify the user when their account needs verification. --- endpoints/web.py | 22 +++++++++++++++------- templates/signin.html | 10 +++++++--- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/endpoints/web.py b/endpoints/web.py index 959b0fb8d..64a77bef9 100644 --- a/endpoints/web.py +++ b/endpoints/web.py @@ -25,6 +25,7 @@ class _LoginWrappedDBUser(UserMixin): @login_manager.user_loader def load_user(username): + logger.debug('Loading user: %s' % username) db_user = model.get_user(username) if db_user: return _LoginWrappedDBUser(db_user) @@ -38,9 +39,14 @@ def index(): def common_login(db_user): - logger.debug('Successfully signed in as: %s' % db_user.username) - login_user(_LoginWrappedDBUser(db_user)) - identity_changed.send(app, identity=Identity(db_user.username, 'username')) + if login_user(_LoginWrappedDBUser(db_user)): + logger.debug('Successfully signed in as: %s' % db_user.username) + identity_changed.send(app, + identity=Identity(db_user.username, 'username')) + return True + else: + logger.debug('User could not be logged in, inactive?.'); + return False @app.route('/signin', methods=['GET']) @@ -56,14 +62,16 @@ def signin(): #TODO Allow email login verified = model.verify_user(username, password) if verified: - common_login(verified) - - return redirect(request.args.get('next') or url_for('index')) + if common_login(verified): + return redirect(request.args.get('next') or url_for('index')) + else: + return render_template('signin.html', + needs_email_verification=True) else: return render_template('signin.html', username=username, - error='Invalid username or password.') + invalid_credentials=True) @app.route('/confirm', methods=['GET']) diff --git a/templates/signin.html b/templates/signin.html index 20d9f2a38..f6f180253 100644 --- a/templates/signin.html +++ b/templates/signin.html @@ -1,7 +1,7 @@ - Quay Sign In + Sign In - Quay @@ -15,8 +15,12 @@ - {% if error %} -
{{ error }}
+ {% if invalid_credentials %} +
Invalid username or password.
+ {% endif %} + + {% if needs_email_verification %} +
You must verify your email address before you can sign in.
{% endif %}