Files
Felix Baumann fb47c53d52 Initial commit
2026-06-27 17:07:34 +00:00

50 lines
1010 B
Python

from functools import wraps
from django.shortcuts import redirect
from django.contrib import messages
def permission_required(permission):
def decorator(view_func):
@wraps(view_func)
def wrapper(request, *args, **kwargs):
# Superuser haben alles
if request.user.is_superuser:
return view_func(
request,
*args,
**kwargs
)
profile = getattr(
request.user,
"profile",
None
)
if profile and profile.has_permission(permission):
return view_func(
request,
*args,
**kwargs
)
messages.error(
request,
"Keine Berechtigung für diese Aktion!"
)
return redirect("core:dashboard")
return wrapper
return decorator