diff options
author | Frederick Muriuki Muriithi | 2024-08-15 12:04:37 -0500 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-08-15 12:04:37 -0500 |
commit | 7d33224f80ea789b6855947740c7ae2b892aea40 (patch) | |
tree | 519472da0fe6939b2cc01f897206ebed83cc6567 /gn_auth/auth | |
parent | 51029b7bbac7d76a35bfe2f680e887c60aee6156 (diff) | |
download | gn-auth-7d33224f80ea789b6855947740c7ae2b892aea40.tar.gz |
Reduce UI complexity
Providing both the "Enter Verification Token" and the "Send
Verification Email" elements of the same user interface seems to
confuse users.
This commit ensures that the system will provide one or the other, but
not both, depending on whether or not there is a pending verification
token present for the user.
Diffstat (limited to 'gn_auth/auth')
-rw-r--r-- | gn_auth/auth/authorisation/users/views.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/gn_auth/auth/authorisation/users/views.py b/gn_auth/auth/authorisation/users/views.py index 0922e1e..8559696 100644 --- a/gn_auth/auth/authorisation/users/views.py +++ b/gn_auth/auth/authorisation/users/views.py @@ -313,14 +313,29 @@ def list_all_users() -> Response: def handle_unverified(): """Handle case where user tries to login but is unverified""" form = request_json() + email = request.args["email"] # TODO: Maybe have a GN2_URI setting here? # or pass the client_id here? + with (db.connection(current_app.config["AUTH_DB"]) as conn, + db.cursor(conn) as cursor): + cursor.execute( + "DELETE FROM user_verification_codes WHERE expires <= ?", + (int(datetime.now().timestamp()),)) + cursor.execute( + "SELECT u.user_id, u.email, uvc.* FROM users AS u " + "INNER JOIN user_verification_codes AS uvc " + "ON u.user_id=uvc.user_id " + "WHERE u.email=?", + (email,)) + token_found = bool(cursor.fetchone()) + return render_template( "users/unverified-user.html", - email=request.args["email"], + email=email, response_type=request.args["response_type"], client_id=request.args["client_id"], - redirect_uri=request.args["redirect_uri"]) + redirect_uri=request.args["redirect_uri"], + token_found=token_found) @users.route("/send-verification", methods=["POST"]) def send_verification_code(): |