Enhance user authentication: add logging for missing tenant databases during login attempts

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-04-29 12:47:18 +02:00
parent c71da2fabf
commit 46745dba49
+15 -1
View File
@@ -12,6 +12,7 @@ Provides methods for creating, validating, and retrieving user information.
''' '''
import hashlib import hashlib
import copy import copy
import logging
import re import re
import secrets import secrets
import string import string
@@ -19,6 +20,8 @@ from bson.objectid import ObjectId
import settings as cfg import settings as cfg
from settings import MongoClient from settings import MongoClient
logger = logging.getLogger(__name__)
def normalize_student_card_id(card_id): def normalize_student_card_id(card_id):
"""Normalize student card IDs for reliable lookup.""" """Normalize student card IDs for reliable lookup."""
@@ -437,7 +440,18 @@ def check_nm_pwd(username, password):
def find_user_in_db(database_name): def find_user_in_db(database_name):
db = client[database_name] db = client[database_name]
users = db['users'] users = db['users']
return users.find_one({'Username': username, 'Password': hashed_password}) or users.find_one({'username': username, 'Password': hashed_password}) existing_user = users.find_one({'Username': username, 'Password': hashed_password}) or users.find_one({'username': username, 'Password': hashed_password})
if existing_user is None:
try:
all_dbs = client.list_database_names()
if database_name not in all_dbs:
logger.warning(
f"Tenant database missing for login attempt: {database_name!r}. "
f"Available databases={all_dbs}"
)
except Exception:
pass
return existing_user
return find_user_in_db(db_name) return find_user_in_db(db_name)
finally: finally: