fixing bugs with email ignore case feature

This commit is contained in:
forest 2020-12-29 19:03:37 -06:00
parent ff38858c74
commit eba3bd6a5a
2 changed files with 7 additions and 7 deletions

View File

@ -50,15 +50,15 @@ def login():
errors.append("too many logins. please use one of the existing login links that have been emailed to you")
else:
link = f"{current_app.config['BASE_URL']}/auth/magic/{token}"
message = (f"Navigate to {link} to log into Capsul.\n"
"\nIf you didn't request this, ignore this message.")
if len(ignoreCaseMatches) > 0:
joinedMatches = " or ".join(ignoreCaseMatches)
message = (f"You tried to log in as '{email}', but that account doesn't exist yet. "
"If you would like to create a new account for '{email}', click here {link} "
"If you meant to log in as {joinedMatches}, please return to capsul.org "
joinedMatches = " or ".join(map(lambda x: f"'{x}'", ignoreCaseMatches))
message = (f"You tried to log in as '{email}', but that account doesn't exist yet. \n"
f"If you would like to create a new account for '{email}', click here {link} \n\n"
f"If you meant to log in as {joinedMatches}, please return to https://capsul.org \n"
"and log in again with the correct (case-sensitive) email address.")
current_app.config["FLASK_MAIL_INSTANCE"].send(

View File

@ -15,8 +15,8 @@ class DBModel:
everLoggedIn = len(self.cursor.fetchall())
ignoreCaseMatches = []
if everLoggedIn == 0:
self.cursor.execute("SELECT email FROM accounts WHERE lower_case_email = %s", (email.lower(), ))
ignoreCaseMatches = self.cursor.fetchall()
self.cursor.execute("SELECT email FROM accounts WHERE lower_case_email = %s AND email != %s", (email.lower(), email))
ignoreCaseMatches = list(map(lambda x: x[0], self.cursor.fetchall()))
if hasExactMatch == 0:
self.cursor.execute("INSERT INTO accounts (email, lower_case_email) VALUES (%s, %s)", (email, email.lower()))