summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Long <indirecthit@gmail.com>2006-09-12 15:55:49 +0000
committerChristopher Long <indirecthit@gmail.com>2006-09-12 15:55:49 +0000
commit43260cfbf2d9f42f66ad60110152fc9cece27908 (patch)
tree6fe9316e8608fd70598d565e3c65ef3194a97da2
parent00972e69b6143e7cafd34661366cfe8e8975470b (diff)
downloaddjango-43260cfbf2d9f42f66ad60110152fc9cece27908.tar.gz
[per-object-permissions] Fixes MySQL error caused by when a user is not a member of a group
git-svn-id: http://code.djangoproject.com/svn/django/branches/per-object-permissions@3753 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/auth/models.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py
index 44ac167020..1210bf0544 100644
--- a/django/contrib/auth/models.py
+++ b/django/contrib/auth/models.py
@@ -80,12 +80,15 @@ class RowLevelPermissionManager(models.Manager):
owner_id=user.id, permission=perm.id,
model_ct=model_ct
).values('model_id')
- user_group_list = [g['id'] for g in user.groups.select_related().values('id')]
- group_model_ids = RowLevelPermission.objects.filter(owner_ct=ContentType.objects.get_for_model(Group).id,
- owner_id__in=user_group_list,
- model_ct = model_ct
- ).values('model_id')
- id_list = [o['model_id'] for o in user_model_ids] + [o['model_id'] for o in group_model_ids]
+ id_list = [o['model_id'] for o in user_model_ids]
+
+ user_group_list = [g['id'] for g in user.groups.select_related().values('id')]
+ if user_group_list:
+ group_model_ids = RowLevelPermission.objects.filter(owner_ct=ContentType.objects.get_for_model(Group).id,
+ owner_id__in=user_group_list,
+ model_ct = model_ct
+ ).values('model_id')
+ id_list.append([o['model_id'] for o in group_model_ids])
return id_list
class RowLevelPermission(models.Model):