first commit for v0.2

This commit is contained in:
Élie Bouttier 2014-08-30 15:38:06 -07:00
parent 6ba03afc73
commit 1463854a45
143 changed files with 20775 additions and 2764 deletions

26
permissions/decorators.py Normal file
View file

@ -0,0 +1,26 @@
from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from functools import wraps
from tracker.models import Project
def project_perm_required(perm):
def decorator(view):
@wraps(view)
def wrapper(request, *args, **kwargs):
if 'project' in kwargs.keys():
project = kwargs['project']
else:
project = None
if request.user.has_perm(perm, project):
return view(request, *args, **kwargs)
elif request.user.is_authenticated():
raise PermissionDenied()
else:
return login_required(view)(request, *args, **kwargs)
return wrapper
return decorator