"""Auth middleware - Updated for database""" from functools import wraps from flask import session, redirect, url_for from database.models import User def login_required(f): """Require login for view""" @wraps(f) def decorated_function(*args, **kwargs): if 'user_id' not in session: return redirect(url_for('auth.login', next=request.url)) # Verify user still exists user = User.query.get(session['user_id']) if not user: session.clear() return redirect(url_for('auth.login')) return f(*args, **kwargs) return decorated_function def setup_auth(app): """Setup auth for Flask app""" @app.before_request def before_request(): """Before each request - update session user info""" if 'user_id' in session: user = User.query.get(session['user_id']) if user: # Sync session data session['username'] = user.username session['is_admin'] = user.is_admin else: # User was deleted session.clear()