fixing bugs with email ignore case feature
This commit is contained in:
		@ -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(
 | 
			
		||||
 | 
			
		||||
@ -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()))
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user