From afac2afa24664e19a751e7c59ea697de1566d13b Mon Sep 17 00:00:00 2001 From: davelopez <46503462+davelopez@users.noreply.github.com> Date: Fri, 24 May 2024 10:50:08 +0200 Subject: [PATCH] Serialize accessible field for collection elements --- client/src/api/schema/schema.ts | 2 ++ lib/galaxy/schema/schema.py | 1 + lib/galaxy/webapps/galaxy/services/dataset_collections.py | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/client/src/api/schema/schema.ts b/client/src/api/schema/schema.ts index d48a58025da..36a71aa1d4e 100644 --- a/client/src/api/schema/schema.ts +++ b/client/src/api/schema/schema.ts @@ -6083,6 +6083,8 @@ export interface components { * @description History Dataset Association Object */ HDAObject: { + /** Accessible */ + accessible: boolean; /** Copied From Ldda Id */ copied_from_ldda_id?: string | null; /** diff --git a/lib/galaxy/schema/schema.py b/lib/galaxy/schema/schema.py index 9e9360d5676..aeadf4d8874 100644 --- a/lib/galaxy/schema/schema.py +++ b/lib/galaxy/schema/schema.py @@ -939,6 +939,7 @@ class HDAObject(Model, WithModelClass): history_id: HistoryID tags: List[str] copied_from_ldda_id: Optional[EncodedDatabaseIdField] = None + accessible: bool model_config = ConfigDict(extra="allow") diff --git a/lib/galaxy/webapps/galaxy/services/dataset_collections.py b/lib/galaxy/webapps/galaxy/services/dataset_collections.py index 25fcdb61f0a..40d32be49e7 100644 --- a/lib/galaxy/webapps/galaxy/services/dataset_collections.py +++ b/lib/galaxy/webapps/galaxy/services/dataset_collections.py @@ -24,6 +24,7 @@ from galaxy.managers.collections_util import ( dictify_element_reference, ) from galaxy.managers.context import ProvidesHistoryContext +from galaxy.managers.hdas import HDAManager from galaxy.managers.hdcas import HDCAManager from galaxy.managers.histories import HistoryManager from galaxy.model import DatasetCollectionElement @@ -94,12 +95,14 @@ class DatasetCollectionsService(ServiceBase, UsesLibraryMixinItems): self, security: IdEncodingHelper, history_manager: HistoryManager, + hda_manager: HDAManager, hdca_manager: HDCAManager, collection_manager: DatasetCollectionManager, datatypes_registry: Registry, ): super().__init__(security) self.history_manager = history_manager + self.hda_manager = hda_manager self.hdca_manager = hdca_manager self.collection_manager = collection_manager self.datatypes_registry = datatypes_registry @@ -270,6 +273,8 @@ class DatasetCollectionsService(ServiceBase, UsesLibraryMixinItems): hdca_id=self.encode_id(hdca.id), parent_id=self.encode_id(result["object"]["id"]), ) + else: + result["object"]["accessible"] = self.hda_manager.is_accessible(dsc_element.element_object, trans.user) return result rval = [serialize_element(el) for el in contents]