jezdez/django-authority — pull request #9 by jlward (2013-07-03 16:08:46+00:00)
Title: _get_user_cached_perms is doing a dependent sub-query

```
perms = Permission.objects.filter(
Q(user__pk=self.user.pk) | Q(group__in=self.user.groups.all()),
)
```
This is causing a dependent sub-query to be executed. Switch to doing something like:
```
group_pks = set(self.user.groups.values_list(
'pk',
flat=True,
))
perms = Permission.objects.filter(
Q(user__pk=self.user.pk) | Q(group__pk__in=group_pks),
)
```

It might be doing an extra query, however in the general case it will be faster to run the two small queries than the one that contains a dependent sub-query.