diff --git a/apps/perms/api/asset_permission.py b/apps/perms/api/asset_permission.py index 41c64c7f1..1088117e8 100644 --- a/apps/perms/api/asset_permission.py +++ b/apps/perms/api/asset_permission.py @@ -68,15 +68,18 @@ class AssetPermissionViewSet(viewsets.ModelViewSet): node_id = self.request.query_params.get('node_id') node_name = self.request.query_params.get('node') if node_id: - node = get_object_or_none(Node, pk=node_id) + nodes = Node.objects.filter(pk=node_id) elif node_name: - node = get_object_or_none(Node, name=node_name) + nodes = Node.objects.filter(value=node_name) else: return queryset - if not node: + if not nodes: return queryset.none() - nodes = node.get_ancestors(with_self=True) - queryset = queryset.filter(nodes__in=nodes) + + related_nodes = [] + for node in nodes: + [related_nodes.append(item) for item in node.get_ancestors(with_self=True)] + queryset = queryset.filter(nodes__in=related_nodes) return queryset def filter_asset(self, queryset):