staff users can access all projects
This commit is contained in:
parent
f0087a8c06
commit
d0f1908a6a
1 changed files with 15 additions and 12 deletions
|
@ -29,18 +29,21 @@ class ProjectMiddleware:
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
user = User.objects.get(username=request.user)
|
user = User.objects.get(username=request.user)
|
||||||
|
|
||||||
query = Q(public=True)
|
if user and user.is_staff:
|
||||||
if user:
|
projects = Project.objects.all()
|
||||||
# access granted through a team
|
else:
|
||||||
query |= Q(permissions__grantee_type=PermissionModel.GRANTEE_TEAM,
|
query = Q(public=True)
|
||||||
permissions__grantee_name__in=user.teams.values_list('name'))
|
if user:
|
||||||
# access granted through a group
|
# access granted through a team
|
||||||
query |= Q(permissions__grantee_type=PermissionModel.GRANTEE_GROUP,
|
query |= Q(permissions__grantee_type=PermissionModel.GRANTEE_TEAM,
|
||||||
permissions__grantee_name__in=user.groups.values_list('name'))
|
permissions__grantee_name__in=user.teams.values_list('name'))
|
||||||
# access granted by specific permission
|
# access granted through a group
|
||||||
query |= Q(permissions__grantee_type=PermissionModel.GRANTEE_USER,
|
query |= Q(permissions__grantee_type=PermissionModel.GRANTEE_GROUP,
|
||||||
permissions__grantee_name=user.username)
|
permissions__grantee_name__in=user.groups.values_list('name'))
|
||||||
projects = Project.objects.filter(query)
|
# access granted by specific permission
|
||||||
|
query |= Q(permissions__grantee_type=PermissionModel.GRANTEE_USER,
|
||||||
|
permissions__grantee_name=user.username)
|
||||||
|
projects = Project.objects.filter(query)
|
||||||
request.projects = projects
|
request.projects = projects
|
||||||
|
|
||||||
project = view_kwargs.get('project')
|
project = view_kwargs.get('project')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue