"""Flask-Login user loader — registered with login_manager in models.py.""" from app.extensions import login_manager @login_manager.user_loader def load_user(user_id): """Load a user by ID for Flask-Login session management. Returns the correct polymorphic subclass (Admin, Coach, Player, etc.) automatically because SQLAlchemy resolves the identity column. Returns None for deactivated accounts so that disabling a user also invalidates the sessions they already hold. Flask-Login only consults is_active when login_user() is called, never when restoring a session from the cookie, so the check has to happen here. """ from app.extensions import db from app.models.user_model.user import User try: pk = int(user_id) except (TypeError, ValueError): return None user = db.session.get(User, pk) if user is None or not user.is_active_account: return None return user