first commit for v0.2
This commit is contained in:
parent
6ba03afc73
commit
1463854a45
143 changed files with 20775 additions and 2764 deletions
26
permissions/decorators.py
Normal file
26
permissions/decorators.py
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue