Merge pull request #14152 from U8F69/fix_user_auth

fix(auth): correctly use password hash when duplicate email records exist
This commit is contained in:
Tim Jaeryang Baek 2025-05-22 14:58:10 +04:00 committed by GitHub
commit da4aa5f08b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 4 deletions

View File

@ -129,12 +129,16 @@ class AuthsTable:
def authenticate_user(self, email: str, password: str) -> Optional[UserModel]: def authenticate_user(self, email: str, password: str) -> Optional[UserModel]:
log.info(f"authenticate_user: {email}") log.info(f"authenticate_user: {email}")
user = Users.get_user_by_email(email)
if not user:
return None
try: try:
with get_db() as db: with get_db() as db:
auth = db.query(Auth).filter_by(email=email, active=True).first() auth = db.query(Auth).filter_by(id=user.id, active=True).first()
if auth: if auth:
if verify_password(password, auth.password): if verify_password(password, auth.password):
user = Users.get_user_by_id(auth.id)
return user return user
else: else:
return None return None

View File

@ -42,7 +42,9 @@ def search_searchapi(
results = get_filtered_results(results, filter_list) results = get_filtered_results(results, filter_list)
return [ return [
SearchResult( SearchResult(
link=result["link"], title=result.get("title"), snippet=result.get("snippet") link=result["link"],
title=result.get("title"),
snippet=result.get("snippet"),
) )
for result in results[:count] for result in results[:count]
] ]

View File

@ -42,7 +42,9 @@ def search_serpapi(
results = get_filtered_results(results, filter_list) results = get_filtered_results(results, filter_list)
return [ return [
SearchResult( SearchResult(
link=result["link"], title=result.get("title"), snippet=result.get("snippet") link=result["link"],
title=result.get("title"),
snippet=result.get("snippet"),
) )
for result in results[:count] for result in results[:count]
] ]