@@ -248,6 +248,24 @@ def _cwa_ensure_db_session():
248248 from sqlalchemy import or_
249249 import time
250250
251+ if config .config_allow_reverse_proxy_header_login :
252+ """
253+ Load user from reverse proxy authentication header if configured.
254+ Sets g.flask_httpauth_user early so that current_user proxy resolves correctly
255+ for user-specific settings like theme preferences.
256+
257+ This must run before any blueprint before_request handlers that access current_user.
258+ """
259+
260+ from flask import g , request
261+ from . import usermanagement
262+ user = usermanagement .load_user_from_reverse_proxy_header (request )
263+ if user :
264+ g .flask_httpauth_user = user
265+ else :
266+ # Explicitly set to None to indicate we checked but found nothing
267+ g .flask_httpauth_user = None
268+
251269 if current_user .is_authenticated :
252270 try :
253271 # Verify required tables exist before querying
@@ -358,28 +376,6 @@ def shutdown_session(exception=None):
358376 if calibre_db .session_factory :
359377 calibre_db .session_factory .remove ()
360378
361- # Load user from reverse proxy header early in request lifecycle
362- # This ensures current_user resolves correctly before any code accesses user settings
363- @app .before_request
364- def _load_reverse_proxy_user ():
365- """
366- Load user from reverse proxy authentication header if configured.
367- Sets g.flask_httpauth_user early so that current_user proxy resolves correctly
368- for user-specific settings like theme preferences.
369-
370- This must run before any blueprint before_request handlers that access current_user.
371- """
372- from flask import g , request
373-
374- if config .config_allow_reverse_proxy_header_login :
375- from . import usermanagement
376- user = usermanagement .load_user_from_reverse_proxy_header (request )
377- if user :
378- g .flask_httpauth_user = user
379- else :
380- # Explicitly set to None to indicate we checked but found nothing
381- g .flask_httpauth_user = None
382-
383379 from .schedule import register_scheduled_tasks , register_startup_tasks
384380 register_scheduled_tasks (config .schedule_reconnect )
385381 register_startup_tasks ()
0 commit comments