primary email change functionality
Build LinkLog Development Image / development-image (push) Successful in 12s

This commit is contained in:
2026-08-26 15:25:49 +02:00
parent 079eb146f6
commit fec7836384
14 changed files with 572 additions and 125 deletions
+16 -1
View File
@@ -7,7 +7,15 @@ from backend.app.database import get_connection, hash_password, verify_password
def authenticate_user(email: str, password: str):
with get_connection() as conn:
row = conn.execute('SELECT * FROM users WHERE email = ?', (email,)).fetchone()
row = conn.execute(
'''SELECT * FROM users WHERE email = ?
UNION ALL
SELECT users.* FROM users JOIN user_email_addresses
ON user_email_addresses.user_id = users.id
WHERE user_email_addresses.email = ? AND user_email_addresses.verified = 1
LIMIT 1''',
(email, email),
).fetchone()
if row is None or not verify_password(password, row['password_hash']):
return None
user = dict(row)
@@ -26,4 +34,11 @@ def authenticate_user(email: str, password: str):
def find_user(email: str):
with get_connection() as conn:
row = conn.execute('SELECT * FROM users WHERE email = ?', (email,)).fetchone()
if row is None:
row = conn.execute(
'''SELECT users.* FROM users JOIN user_email_addresses
ON user_email_addresses.user_id = users.id
WHERE user_email_addresses.email = ?''',
(email,),
).fetchone()
return dict(row) if row else None