authorization: add decorators to restrict view access.
This commit is contained in:
parent
a61afb76e0
commit
fd9769d7ad
|
@ -0,0 +1,28 @@
|
|||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpResponseRedirect
|
||||
from functools import wraps
|
||||
|
||||
from utils import is_super_user, is_validator
|
||||
|
||||
auth_url = '/accounts/login/'
|
||||
|
||||
|
||||
'''
|
||||
''''''
|
||||
Decorators to protect views
|
||||
''''''
|
||||
'''
|
||||
|
||||
def super_user_only(view_func):
|
||||
def _wrapped_view(request, *args, **kwargs):
|
||||
if not is_super_user(request.user):
|
||||
return HttpResponseRedirect(auth_url)
|
||||
return view_func(request, *args, **kwargs)
|
||||
return login_required(wraps(view_func)(_wrapped_view))
|
||||
|
||||
def validator_only(view_func):
|
||||
def _wrapped_view(request, *args, **kwargs):
|
||||
if not is_validator(request.user):
|
||||
return HttpResponseRedirect(auth_url)
|
||||
return view_func(request, *args, **kwargs)
|
||||
return login_required(wraps(view_func)(_wrapped_view))
|
Reference in New Issue