diff --git a/src/elm/pages/LoginPage.py b/src/elm/pages/LoginPage.py index 0d2df31..0681520 100644 --- a/src/elm/pages/LoginPage.py +++ b/src/elm/pages/LoginPage.py @@ -32,6 +32,9 @@ class LoginPage(Component): self.login_in_progress = True user_name = copy(self.user_name) # Prevents race condition name swap is_valid = await self.session[UserService].is_login_valid(user_name, self.password) + if not is_valid: # Migrated users + user_name = user_name.lower().capitalize() + is_valid = await self.session[UserService].is_login_valid(user_name, self.password) if is_valid: user: User = await self.session[UserService].get_user(user_name) self.error_on_last_attempt = False diff --git a/src/elm/services/UserService.py b/src/elm/services/UserService.py index d34d9eb..dabc855 100644 --- a/src/elm/services/UserService.py +++ b/src/elm/services/UserService.py @@ -1,4 +1,3 @@ -from asyncio import sleep from hashlib import sha256 from typing import Optional from string import ascii_letters, digits @@ -69,8 +68,6 @@ class UserService: async def is_login_valid(self, user_name: str, password_clear_text: str) -> bool: user = await self.get_user(user_name) - if not user: - user = await self.get_user(user_name.lower()) # Migrated users had all lowercase names user_password_hash = sha256(password_clear_text.encode(encoding="utf-8")).hexdigest() if not user: return False