diff --git a/accounts/decorators.py b/accounts/decorators.py index 3e88d72..027a5b6 100644 --- a/accounts/decorators.py +++ b/accounts/decorators.py @@ -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)