Files
haproxy-dashboard/auth/auth_middleware.py
Mateusz Gruszczyński addb21bc3e rewrite
2025-11-04 09:56:37 +01:00

40 lines
1.1 KiB
Python

"""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()