13 lines
565 B
Python
13 lines
565 B
Python
from django.contrib.auth.models import Group
|
|
from django.http import HttpResponseForbidden
|
|
|
|
def group_required(group_names):
|
|
def decorator(view_func):
|
|
def _wrapped_view(request, *args, **kwargs):
|
|
if request.user.is_authenticated:
|
|
if request.user.groups.filter(name__in=group_names).exists() or request.user.is_superuser:
|
|
return view_func(request, *args, **kwargs)
|
|
return HttpResponseForbidden("You don't have permission to access this page.")
|
|
return _wrapped_view
|
|
return decorator
|