fix: 用户详情页的资产授权列表慢

pull/5698/head^2
xinwen 2021-03-05 10:50:23 +08:00
parent 3e7e01418d
commit 935947c97a
1 changed files with 9 additions and 2 deletions

View File

@ -58,12 +58,19 @@ class PermissionBaseFilter(BaseFilterSet):
return queryset
if not user:
return queryset.none()
if is_query_all:
if not is_query_all:
queryset = queryset.filter(users=user)
return queryset
groups = list(user.groups.all().values_list('id', flat=True))
user_asset_perm_ids = AssetPermission.objects.filter(users=user).distinct().values_list('id', flat=True)
group_asset_perm_ids = AssetPermission.objects.filter(user_groups__in=groups).distinct().values_list('id', flat=True)
asset_perm_ids = {*user_asset_perm_ids, *group_asset_perm_ids}
queryset = queryset.filter(
Q(users=user) | Q(user_groups__in=groups)
id__in=asset_perm_ids
).distinct()
return queryset