DasUnternehmen/permissions.py
2026-04-08 21:23:55 +02:00

39 lines
1.1 KiB
Python

from functools import wraps
from flask import session, redirect, url_for, flash
from db import fetch_one
def login_required(view_func):
@wraps(view_func)
def wrapper(*args, **kwargs):
if not session.get('user_id'):
flash('Bitte zuerst anmelden.', 'warning')
return redirect(url_for('login'))
return view_func(*args, **kwargs)
return wrapper
def admin_required(view_func):
@wraps(view_func)
def wrapper(*args, **kwargs):
user_id = session.get('user_id')
if not user_id:
flash('Bitte zuerst anmelden.', 'warning')
return redirect(url_for('login'))
row = fetch_one(
'''
SELECT 1
FROM benutzer_gruppen bg
JOIN gruppen g ON g.id = bg.gruppen_id
WHERE bg.benutzer_id = %s AND g.gruppenname = 'Admins'
''',
(user_id,),
)
if not row:
flash('Keine Berechtigung für diesen Bereich.', 'danger')
return redirect(url_for('dashboard'))
return view_func(*args, **kwargs)
return wrapper