Initial commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
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
|
||||
Reference in New Issue
Block a user