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