mirror of
https://github.com/django/django.git
synced 2025-07-05 10:19:20 +00:00
[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
This commit is contained in:
parent
00972e69b6
commit
43260cfbf2
@ -80,12 +80,15 @@ class RowLevelPermissionManager(models.Manager):
|
|||||||
owner_id=user.id, permission=perm.id,
|
owner_id=user.id, permission=perm.id,
|
||||||
model_ct=model_ct
|
model_ct=model_ct
|
||||||
).values('model_id')
|
).values('model_id')
|
||||||
user_group_list = [g['id'] for g in user.groups.select_related().values('id')]
|
id_list = [o['model_id'] for o in user_model_ids]
|
||||||
group_model_ids = RowLevelPermission.objects.filter(owner_ct=ContentType.objects.get_for_model(Group).id,
|
|
||||||
owner_id__in=user_group_list,
|
user_group_list = [g['id'] for g in user.groups.select_related().values('id')]
|
||||||
model_ct = model_ct
|
if user_group_list:
|
||||||
).values('model_id')
|
group_model_ids = RowLevelPermission.objects.filter(owner_ct=ContentType.objects.get_for_model(Group).id,
|
||||||
id_list = [o['model_id'] for o in user_model_ids] + [o['model_id'] for o in group_model_ids]
|
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
|
return id_list
|
||||||
|
|
||||||
class RowLevelPermission(models.Model):
|
class RowLevelPermission(models.Model):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user