can_user -> perm, that now check project perm too

This commit is contained in:
Élie Bouttier 2014-08-10 15:33:29 -07:00
parent 805166de05
commit e603464e6a
3 changed files with 12 additions and 6 deletions

View file

@ -18,11 +18,12 @@ class PermissionChecker:
class PermWrapper:
def __init__(self, user):
def __init__(self, user, project):
self.user = user
self.project = project
def __getitem__(self, perm):
return self.user.has_perm(perm)
return self.user.has_perm(perm, self.project)
def __iter__(self):
raise TypeError("PermWrapper is not iterable.")
@ -31,6 +32,10 @@ class PermWrapper:
return self[perm]
def can_user(request):
wrapper = PermWrapper(request.user)
return {'can_user': wrapper}
def perm(request):
if hasattr(request, 'project'):
project = request.project
else:
project = None
wrapper = PermWrapper(request.user, project)
return {'perm': wrapper}

View file

@ -60,3 +60,4 @@ class ProjectMiddleware:
else:
return login_required(view)(request, *view_args, **view_kwargs)
view_kwargs['project'] = project
request.project = project

View file

@ -114,7 +114,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',
'issue.context_processors.projects',
'issue.context_processors.can_user',
'issue.context_processors.perm',
)
AUTHENTICATION_BACKENDS = (