Merge remote-tracking branch 'refs/remotes/origin/bugfix/password-reset'

# Conflicts:
#	README.md
#	VERSION
#	src/EzggLanManager.py
#	src/ezgg_lan_manager/pages/TournamentDetailsPage.py
#	src/ezgg_lan_manager/pages/__init__.py
This commit is contained in:
tcprod
2026-02-16 17:58:16 +01:00
10 changed files with 32 additions and 41 deletions
@@ -76,14 +76,15 @@ class DatabaseService:
user_name=data[1],
user_mail=data[2],
user_password=data[3],
user_first_name=data[4],
user_last_name=data[5],
user_birth_day=data[6],
is_active=bool(data[7]),
is_team_member=bool(data[8]),
is_admin=bool(data[9]),
created_at=data[10],
last_updated_at=data[11]
user_fallback_password=data[4],
user_first_name=data[5],
user_last_name=data[6],
user_birth_day=data[7],
is_active=bool(data[8]),
is_team_member=bool(data[9]),
is_admin=bool(data[10]),
created_at=data[11],
last_updated_at=data[12]
)
@staticmethod
@@ -186,10 +187,10 @@ class DatabaseService:
async with conn.cursor(aiomysql.Cursor) as cursor:
try:
await cursor.execute(
"UPDATE users SET user_name=%s, user_mail=%s, user_password=%s, user_first_name=%s, "
"user_last_name=%s, user_birth_date=%s, is_active=%s, is_team_member=%s, is_admin=%s "
"WHERE (user_id=%s)",
(user.user_name, user.user_mail.lower(), user.user_password,
"UPDATE users SET user_name=%s, user_mail=%s, user_password=%s, user_fallback_password=%s,"
"user_first_name=%s, user_last_name=%s, user_birth_date=%s, is_active=%s, is_team_member=%s,"
" is_admin=%s WHERE (user_id=%s)",
(user.user_name, user.user_mail.lower(), user.user_password, user.user_fallback_password,
user.user_first_name, user.user_last_name, user.user_birth_day,
user.is_active, user.is_team_member, user.is_admin,
user.user_id)
+4 -1
View File
@@ -59,9 +59,12 @@ class UserService:
async def is_login_valid(self, user_name_or_mail: str, password_clear_text: str) -> bool:
user = await self.get_user(user_name_or_mail)
user_password_hash = sha256(password_clear_text.encode(encoding="utf-8")).hexdigest()
if not user:
return False
return user.user_password == sha256(password_clear_text.encode(encoding="utf-8")).hexdigest()
if user.user_fallback_password and user.user_fallback_password == user_password_hash:
return True
return user.user_password == user_password_hash
def _check_for_disallowed_char(self, name: str) -> Optional[str]: