commit
This commit is contained in:
parent
72970f02c4
commit
3c82a548e4
|
@ -167,10 +167,20 @@ def get_user_existing_permissions(request, user_id):
|
||||||
|
|
||||||
user = get_object_or_404(User, pk=user_id)
|
user = get_object_or_404(User, pk=user_id)
|
||||||
|
|
||||||
|
# 获取所有权限
|
||||||
all_permissions = format_permissions(Permission.objects.all().select_related('content_type').values('id', 'name', 'codename', 'content_type__app_label'))
|
all_permissions = format_permissions(Permission.objects.all().select_related('content_type').values('id', 'name', 'codename', 'content_type__app_label'))
|
||||||
|
|
||||||
|
# 获取用户的个人权限
|
||||||
user_permissions = user.user_permissions.all().values_list('codename', flat=True)
|
user_permissions = user.user_permissions.all().values_list('codename', flat=True)
|
||||||
|
|
||||||
|
# 获取用户所在组的权限
|
||||||
|
group_permissions = Permission.objects.filter(group__user=user).values_list('codename', flat=True)
|
||||||
|
|
||||||
|
# 合并用户个人权限和组权限
|
||||||
|
user_permissions_set = set(user_permissions)
|
||||||
|
group_permissions_set = set(group_permissions)
|
||||||
|
all_user_permissions = user_permissions_set.union(group_permissions_set)
|
||||||
|
|
||||||
# 处理数据以合并相同资源分组和资源名称的权限
|
# 处理数据以合并相同资源分组和资源名称的权限
|
||||||
processed_permissions = {}
|
processed_permissions = {}
|
||||||
for perm in all_permissions:
|
for perm in all_permissions:
|
||||||
|
@ -187,12 +197,12 @@ def get_user_existing_permissions(request, user_id):
|
||||||
}
|
}
|
||||||
|
|
||||||
if perm['permission'] == '新增':
|
if perm['permission'] == '新增':
|
||||||
processed_permissions[key]['add'] = perm['codename'] in user_permissions
|
processed_permissions[key]['add'] = perm['codename'] in all_user_permissions
|
||||||
elif perm['permission'] == '删除':
|
elif perm['permission'] == '删除':
|
||||||
processed_permissions[key]['remove'] = perm['codename'] in user_permissions
|
processed_permissions[key]['remove'] = perm['codename'] in all_user_permissions
|
||||||
elif perm['permission'] == '修改':
|
elif perm['permission'] == '修改':
|
||||||
processed_permissions[key]['change'] = perm['codename'] in user_permissions
|
processed_permissions[key]['change'] = perm['codename'] in all_user_permissions
|
||||||
elif perm['permission'] == '查看':
|
elif perm['permission'] == '查看':
|
||||||
processed_permissions[key]['view'] = perm['codename'] in user_permissions
|
processed_permissions[key]['view'] = perm['codename'] in all_user_permissions
|
||||||
|
|
||||||
return JsonResponse({'permissions': list(processed_permissions.values()), 'user_id': user_id})
|
return JsonResponse({'permissions': list(processed_permissions.values()), 'user_id': user_id})
|
||||||
|
|
Loading…
Reference in New Issue