Add a view for GlobalSettings

This commit is contained in:
Tobias Kunze
2016-10-27 08:18:59 +02:00
committed by Raphael Michel
parent 02fd0a8e06
commit c647aa9f4e
8 changed files with 127 additions and 5 deletions

View File

@@ -81,7 +81,7 @@ def organizer_permission_required(permission):
class OrganizerPermissionRequiredMixin:
"""
This mixin is equivalent to the event_permission_required view decorator but
This mixin is equivalent to the organizer_permission_required view decorator but
is in a form suitable for class-based views.
"""
permission = ''
@@ -90,3 +90,33 @@ class OrganizerPermissionRequiredMixin:
def as_view(cls, **initkwargs):
view = super(OrganizerPermissionRequiredMixin, cls).as_view(**initkwargs)
return organizer_permission_required(cls.permission)(view)
def administrator_permission_required(permission):
"""
This view decorator rejects all requests with a 403 response which are not from
users with the is_superuser flag.
"""
def decorator(function):
def wrapper(request, *args, **kw):
if not request.user.is_authenticated: # NOQA
# just a double check, should not ever happen
raise PermissionDenied()
if not request.user.is_superuser:
raise PermissionDenied(_('You do not have permission to view this content.'))
return function(request, *args, **kw)
return wrapper
return decorator
class AdministratorPermissionRequiredMixin:
"""
This mixin is equivalent to the administrator_permission_required view decorator but
is in a form suitable for class-based views.
"""
permission = ''
@classmethod
def as_view(cls, **initkwargs):
view = super(AdministratorPermissionRequiredMixin, cls).as_view(**initkwargs)
return administrator_permission_required(cls.permission)(view)