34 lines
719 B
Python
34 lines
719 B
Python
from issue.models import Project
|
|
|
|
|
|
def projects(request):
|
|
|
|
if hasattr(request, 'projects'):
|
|
return {'projects': request.projects}
|
|
else:
|
|
return {}
|
|
|
|
|
|
class PermWrapper:
|
|
|
|
def __init__(self, user, project):
|
|
self.user = user
|
|
self.project = project
|
|
|
|
def __getitem__(self, perm):
|
|
return self.user.has_perm(perm, self.project)
|
|
|
|
def __iter__(self):
|
|
raise TypeError("PermWrapper is not iterable.")
|
|
|
|
def __contains__(self, perm):
|
|
return self[perm]
|
|
|
|
|
|
def perm(request):
|
|
if hasattr(request, 'project'):
|
|
project = request.project
|
|
else:
|
|
project = None
|
|
wrapper = PermWrapper(request.user, project)
|
|
return {'perm': wrapper}
|