diff options
author | Christopher Long <indirecthit@gmail.com> | 2006-09-12 15:55:49 +0000 |
---|---|---|
committer | Christopher Long <indirecthit@gmail.com> | 2006-09-12 15:55:49 +0000 |
commit | 43260cfbf2d9f42f66ad60110152fc9cece27908 (patch) | |
tree | 6fe9316e8608fd70598d565e3c65ef3194a97da2 | |
parent | 00972e69b6143e7cafd34661366cfe8e8975470b (diff) | |
download | django-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.py | 15 |
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): |