From 535d7d83730fc7cb5d91152c03e81dbeaa72c91b Mon Sep 17 00:00:00 2001 From: xinwen Date: Sat, 10 Oct 2020 16:27:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(perms):=20=E6=8E=88=E6=9D=83=E6=A0=91?= =?UTF-8?q?=E4=B8=8E=E8=B5=84=E4=BA=A7=E5=88=97=E8=A1=A8=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/pagination.py | 2 +- .../api/user_permission/user_permission_nodes_with_assets.py | 2 ++ apps/perms/signals_handler.py | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/assets/pagination.py b/apps/assets/pagination.py index dd37600f8..4fd866e3d 100644 --- a/apps/assets/pagination.py +++ b/apps/assets/pagination.py @@ -18,7 +18,7 @@ class AssetLimitOffsetPagination(LimitOffsetPagination): self.limit_query_param, self.offset_query_param, 'node', 'all', 'show_current_asset', - 'node_id', 'display', 'draw', + 'node_id', 'display', 'draw', 'fields_size', } for k, v in self._request.query_params.items(): diff --git a/apps/perms/api/user_permission/user_permission_nodes_with_assets.py b/apps/perms/api/user_permission/user_permission_nodes_with_assets.py index e0591b7df..ae9f00536 100644 --- a/apps/perms/api/user_permission/user_permission_nodes_with_assets.py +++ b/apps/perms/api/user_permission/user_permission_nodes_with_assets.py @@ -3,6 +3,7 @@ from rest_framework.generics import ListAPIView from rest_framework.request import Request from rest_framework.response import Response +from django.db.models import F from common.permissions import IsValidUser from common.utils import get_logger, get_object_or_none @@ -41,6 +42,7 @@ class MyGrantedNodesWithAssetsAsTreeApi(SerializeToTreeNodeMixin, ListAPIView): rebuild_user_tree_if_need(request, user) all_nodes = get_user_granted_nodes_list_via_mapping_node(user) all_assets = get_user_granted_all_assets(user) + all_assets = all_assets.annotate(parent_key=F('nodes__key')) data = [ *self.serialize_nodes(all_nodes, with_asset_amount=True), diff --git a/apps/perms/signals_handler.py b/apps/perms/signals_handler.py index 3882cd1f5..fe39804f6 100644 --- a/apps/perms/signals_handler.py +++ b/apps/perms/signals_handler.py @@ -35,7 +35,9 @@ def on_asset_permission_delete(instance, **kwargs): def create_rebuild_user_tree_task_by_asset_perm(asset_perm: AssetPermission): user_ids = set() user_ids.update( - UserGroup.objects.filter(assetpermissions=asset_perm).distinct().values_list('users__id', flat=True) + UserGroup.objects.filter( + assetpermissions=asset_perm, users__id__isnull=False + ).distinct().values_list('users__id', flat=True) ) user_ids.update( User.objects.filter(assetpermissions=asset_perm).distinct().values_list('id', flat=True)