authorization: add decorators to restrict view access.

This commit is contained in:
Mikaël Ates 2013-01-09 15:21:31 +01:00
parent a61afb76e0
commit fd9769d7ad
1 changed files with 28 additions and 0 deletions

28
calebasse/decorators.py Normal file
View File

@ -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))