"""Authentication utilities.""" from __future__ import annotations from functools import wraps from flask import redirect, session, url_for def login_required(f): """Decorator to require login for routes.""" @wraps(f) def decorated_function(*args, **kwargs): if not session.get("logged_in"): return redirect(url_for("auth.login")) return f(*args, **kwargs) return decorated_function