From c9aab608a92ab542b2291bc07710348af317c93e Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 14 Nov 2018 12:42:26 +0800 Subject: [PATCH] =?UTF-8?q?[Bugfix]=20=E4=BF=AE=E5=A4=8Dluna=E4=B8=8D?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=A4=9A=E7=BB=84=E7=BB=87=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/api.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/perms/api.py b/apps/perms/api.py index e90a1a272..98287212f 100644 --- a/apps/perms/api.py +++ b/apps/perms/api.py @@ -411,18 +411,22 @@ class UserGrantedNodeChildrenApi(ListAPIView): util = AssetPermissionUtil(self.request.user) node_id = self.request.query_params.get('id') nodes_granted = util.get_nodes_with_assets() - if nodes_granted: - first_node = sorted(nodes_granted, reverse=True)[0] - else: + if not nodes_granted: return [] + root_nodes = [node for node in nodes_granted.keys() if node.is_root()] + + queryset = [] if node_id and node_id in [str(node.id) for node in nodes_granted]: node = [node for node in nodes_granted if str(node.id) == node_id][0] - else: - node = first_node - queryset = [] - if node == first_node: + elif len(root_nodes) == 1: + node = root_nodes[0] node.assets_amount = len(nodes_granted[node]) queryset.append(node) + else: + for node in root_nodes: + node.assets_amount = len(nodes_granted[node]) + queryset.append(node) + return queryset children = [] for child in node.get_children():