optimize request, perm using id instead of name

This commit is contained in:
Élie Bouttier 2014-08-30 17:37:11 -07:00
parent c394bc17d9
commit 0ecf6d3dc9

View file

@ -38,16 +38,16 @@ class ProjectMiddleware:
if request.user.is_authenticated(): if request.user.is_authenticated():
query |= Q(access=Project.ACCESS_REGISTERED) query |= Q(access=Project.ACCESS_REGISTERED)
# access granted through a team # access granted through a team
teams = request.user.teams.values_list('name') teams = request.user.teams.values_list('id')
query |= Q(permissions__grantee_type=PermModel.GRANTEE_TEAM, query |= Q(permissions__grantee_type=PermModel.GRANTEE_TEAM,
permissions__grantee_name__in=teams) permissions__grantee_id__in=teams)
# access granted through a group # access granted through a group
groups = request.user.groups.values_list('name') groups = request.user.groups.values_list('id')
query |= Q(permissions__grantee_type=PermModel.GRANTEE_GROUP, query |= Q(permissions__grantee_type=PermModel.GRANTEE_GROUP,
permissions__grantee_name__in=groups) permissions__grantee_id__in=groups)
# access granted by specific permission # access granted by specific permission
query |= Q(permissions__grantee_type=PermModel.GRANTEE_USER, query |= Q(permissions__grantee_type=PermModel.GRANTEE_USER,
permissions__grantee_name=request.user.username) permissions__grantee_id=request.user.id)
projects = Project.objects.filter(query).distinct() projects = Project.objects.filter(query).distinct()
request.projects = projects request.projects = projects