decorators: redirect to login if not connected

This commit is contained in:
Élie Bouttier 2016-10-16 14:36:01 +02:00
parent d6da137582
commit bd53789ad7

View File

@ -1,21 +1,28 @@
from functools import wraps
from django.core.exceptions import PermissionDenied
from django.contrib.auth.decorators import login_required
from accounts.utils import is_orga, is_staff
def orga_required(view_func):
def _is_orga(request, *args, **kwargs):
if is_orga(request, request.user):
if not request.user.is_authenticated():
return login_required(view_func)(request, *args, **kwargs)
elif is_orga(request, request.user):
return view_func(request, *args, **kwargs)
raise PermissionDenied
else:
raise PermissionDenied
return wraps(view_func)(_is_orga)
def staff_required(view_func):
def _is_staff(request, *args, **kwargs):
if is_staff(request, request.user):
if not request.user.is_authenticated():
return login_required(view_func)(request, *args, **kwargs)
elif is_staff(request, request.user):
return view_func(request, *args, **kwargs)
raise PermissionDenied
else:
raise PermissionDenied
return wraps(view_func)(_is_staff)