passion_retro/users/decorators.py
2025-09-12 11:11:44 +02:00

13 lines
No EOL
522 B
Python
Executable file

from django.core.exceptions import PermissionDenied
from django.contrib.auth.decorators import login_required
def groups_required(*group_names):
def decorator(view_func):
@login_required
def _wrapped_view(request, *args, **kwargs):
if any(request.user.groups.filter(name=group_name).exists() for group_name in group_names):
return view_func(request, *args, **kwargs)
else:
raise PermissionDenied
return _wrapped_view
return decorator