diff --git a/apps/perms/models/asset_permission.py b/apps/perms/models/asset_permission.py index da8001227..aba64ee0c 100644 --- a/apps/perms/models/asset_permission.py +++ b/apps/perms/models/asset_permission.py @@ -96,6 +96,14 @@ class AssetPermission(BasePermission): def get_queryset_with_prefetch(cls): return cls.objects.all().valid().prefetch_related('nodes', 'assets', 'system_users') + def get_all_assets(self): + assets = set(self.assets.all()) + for node in self.nodes.all(): + _assets = node.get_all_assets() + set_or_append_attr_bulk(_assets, 'inherit', node.value) + assets.update(set(_assets)) + return assets + class NodePermission(OrgModelMixin): id = models.UUIDField(default=uuid.uuid4, primary_key=True) diff --git a/apps/perms/views/asset_permission.py b/apps/perms/views/asset_permission.py index e354e7479..ca2d27e42 100644 --- a/apps/perms/views/asset_permission.py +++ b/apps/perms/views/asset_permission.py @@ -156,7 +156,7 @@ class AssetPermissionAssetView(PermissionsMixin, permission_classes = [IsOrgAdmin] def get(self, request, *args, **kwargs): - self.object = self.get_object(queryset = AssetPermission.objects.all()) + self.object = self.get_object(queryset=AssetPermission.objects.all()) return super().get(request, *args, **kwargs) def get_queryset(self):