From 2e82b7f8c03bb94d424618f812ff943b3ec22fc3 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Tue, 8 Jan 2019 13:42:43 -0500 Subject: [PATCH 1/4] fix library dataset permission API broken in refactoring --- lib/galaxy/webapps/galaxy/api/library_datasets.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/api/library_datasets.py b/lib/galaxy/webapps/galaxy/api/library_datasets.py index 7c5b9fd3da1..b9cd0d7b7d9 100644 --- a/lib/galaxy/webapps/galaxy/api/library_datasets.py +++ b/lib/galaxy/webapps/galaxy/api/library_datasets.py @@ -22,7 +22,8 @@ from galaxy.managers import ( folders, lddas, library_datasets, - roles + roles, + hdas ) from galaxy.tools.actions import upload_common from galaxy.tools.parameters import populate_state @@ -45,6 +46,7 @@ class LibraryDatasetsController(BaseAPIController, UsesVisualizationMixin, Libra self.role_manager = roles.RoleManager(app) self.ld_manager = library_datasets.LibraryDatasetsManager(app) self.ldda_manager = lddas.LDDAManager(app) + self.hda_manager = hdas.HDAManager(app) @expose_api_anonymous def show(self, trans, id, **kwd): @@ -155,7 +157,7 @@ class LibraryDatasetsController(BaseAPIController, UsesVisualizationMixin, Libra :rtype: dictionary :returns: dict of current roles for all available permission types """ - return self.serialize_dataset_association_roles(library_dataset) + return self.hda_manager.serialize_dataset_association_roles(trans, library_dataset) @expose_api def update(self, trans, encoded_dataset_id, payload=None, **kwd): From 5e3ebb13c0ad37fe499eb20a644a2821e6ac109d Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Tue, 8 Jan 2019 13:53:40 -0500 Subject: [PATCH 2/4] fix import ordering, thanks @nsoranzo --- lib/galaxy/webapps/galaxy/api/library_datasets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/api/library_datasets.py b/lib/galaxy/webapps/galaxy/api/library_datasets.py index b9cd0d7b7d9..75b43ef952d 100644 --- a/lib/galaxy/webapps/galaxy/api/library_datasets.py +++ b/lib/galaxy/webapps/galaxy/api/library_datasets.py @@ -20,10 +20,10 @@ from galaxy.exceptions import ObjectNotFound from galaxy.managers import ( base as managers_base, folders, + hdas, lddas, library_datasets, - roles, - hdas + roles ) from galaxy.tools.actions import upload_common from galaxy.tools.parameters import populate_state From 29abf8f437af63681a5170e590582a10bf5a173a Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Tue, 8 Jan 2019 14:01:39 -0500 Subject: [PATCH 3/4] refactor approach so the method is inherited to ldda --- lib/galaxy/managers/library_datasets.py | 7 +++++-- lib/galaxy/webapps/galaxy/api/library_datasets.py | 4 +--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/managers/library_datasets.py b/lib/galaxy/managers/library_datasets.py index 5826486dbf6..f56eb61acca 100644 --- a/lib/galaxy/managers/library_datasets.py +++ b/lib/galaxy/managers/library_datasets.py @@ -8,13 +8,16 @@ from galaxy.exceptions import ( ObjectNotFound, RequestParameterInvalidException ) -from galaxy.managers import tags +from galaxy.managers import ( + datasets, + tags +) from galaxy.util import validation log = logging.getLogger(__name__) -class LibraryDatasetsManager(object): +class LibraryDatasetsManager(datasets.DatasetAssociationManager): """Interface/service object for interacting with library datasets.""" def __init__(self, app): diff --git a/lib/galaxy/webapps/galaxy/api/library_datasets.py b/lib/galaxy/webapps/galaxy/api/library_datasets.py index 75b43ef952d..6731d307071 100644 --- a/lib/galaxy/webapps/galaxy/api/library_datasets.py +++ b/lib/galaxy/webapps/galaxy/api/library_datasets.py @@ -20,7 +20,6 @@ from galaxy.exceptions import ObjectNotFound from galaxy.managers import ( base as managers_base, folders, - hdas, lddas, library_datasets, roles @@ -46,7 +45,6 @@ class LibraryDatasetsController(BaseAPIController, UsesVisualizationMixin, Libra self.role_manager = roles.RoleManager(app) self.ld_manager = library_datasets.LibraryDatasetsManager(app) self.ldda_manager = lddas.LDDAManager(app) - self.hda_manager = hdas.HDAManager(app) @expose_api_anonymous def show(self, trans, id, **kwd): @@ -157,7 +155,7 @@ class LibraryDatasetsController(BaseAPIController, UsesVisualizationMixin, Libra :rtype: dictionary :returns: dict of current roles for all available permission types """ - return self.hda_manager.serialize_dataset_association_roles(trans, library_dataset) + return self.ldda_manager.serialize_dataset_association_roles(trans, library_dataset) @expose_api def update(self, trans, encoded_dataset_id, payload=None, **kwd): From 193f5eae6ea33053d70e57268d832635eb873945 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Tue, 8 Jan 2019 14:43:52 -0500 Subject: [PATCH 4/4] call the method through the proper manager --- lib/galaxy/webapps/galaxy/api/datasets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/webapps/galaxy/api/datasets.py b/lib/galaxy/webapps/galaxy/api/datasets.py index 63d5d006d04..0b7449296c1 100644 --- a/lib/galaxy/webapps/galaxy/api/datasets.py +++ b/lib/galaxy/webapps/galaxy/api/datasets.py @@ -112,7 +112,7 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): return self.hda_manager.serialize_dataset_association_roles(trans, dataset_assoc) else: self.ldda_manager.update_permissions(trans, dataset_assoc, **kwd) - return self.hda_manager.serialize_dataset_association_roles(trans, dataset_assoc) + return self.ldda_manager.serialize_dataset_association_roles(trans, dataset_assoc) def _dataset_state(self, trans, dataset, **kwargs): """