diff --git a/apps/perms/api/asset_permission.py b/apps/perms/api/asset_permission.py index 68f01d2e3..0243f8f1b 100644 --- a/apps/perms/api/asset_permission.py +++ b/apps/perms/api/asset_permission.py @@ -73,14 +73,17 @@ class AssetPermissionViewSet(OrgModelViewSet): 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) + + nodes = set() + for node in _nodes: + nodes |= set(node.get_ancestors(with_self=True)) queryset = queryset.filter(nodes__in=nodes) return queryset diff --git a/apps/perms/models/base.py b/apps/perms/models/base.py index b36d009b3..878d9d739 100644 --- a/apps/perms/models/base.py +++ b/apps/perms/models/base.py @@ -29,7 +29,7 @@ class BasePermissionQuerySet(models.QuerySet): return self.filter(is_active=False) def invalid(self): - now = timezone.now + now = timezone.now() q = ( Q(is_active=False) | Q(date_start__gt=now) |