Loading lib/galaxy/managers/landing.py +1 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ class LandingRequestManager: request_state = payload.request_state ref = ToolRunReference(tool_id=tool_id, tool_version=tool_version, tool_uuid=None) tool = get_tool_from_toolbox(self.app.toolbox, ref) tool = get_tool_from_toolbox(self.app.toolbox, ref, user=None) landing_request_state = LandingRequestToolState(request_state or {}) # Okay this is a hack until tool request API commit is merged, tools don't yet have a parameter # schema - so we can't do this properly. Loading lib/galaxy/managers/tools.py +7 −9 Original line number Diff line number Diff line Loading @@ -24,10 +24,12 @@ from galaxy import ( from galaxy.managers.context import ProvidesUserContext from galaxy.model import ( DynamicTool, User, UserDynamicToolAssociation, ) from galaxy.tool_util.cwl import tool_proxy from galaxy.tool_util.parser.yaml import YamlToolSource from galaxy.tool_util.toolbox import AbstractToolBox from galaxy.tool_util_models.dynamic_tool_models import ( DynamicToolPayload, DynamicUnprivilegedToolCreatePayload, Loading Loading @@ -61,17 +63,13 @@ class ToolRunReference(NamedTuple): def get_tool_from_trans(trans: ProvidesUserContext, tool_ref: ToolRunReference) -> Tool: return get_tool_from_toolbox(trans.app.toolbox, tool_ref) return get_tool_from_toolbox(trans.app.toolbox, tool_ref, trans.user) def get_tool_from_toolbox(toolbox, tool_ref: ToolRunReference) -> Tool: get_kwds = dict( tool_id=tool_ref.tool_id, tool_uuid=tool_ref.tool_uuid, tool_version=tool_ref.tool_version, def get_tool_from_toolbox(toolbox: AbstractToolBox, tool_ref: ToolRunReference, user: Optional[User]) -> Tool: tool = toolbox.get_tool( tool_id=tool_ref.tool_id, tool_uuid=tool_ref.tool_uuid, tool_version=tool_ref.tool_version, user=user ) tool = toolbox.get_tool(**get_kwds) if not tool: log.debug(f"Not found tool with kwds [{tool_ref}]") raise exceptions.ToolMissingException("Tool not found.") Loading Loading @@ -102,7 +100,7 @@ class DynamicToolManager(ModelManager[DynamicTool]): return self.get_tool_by_uuid(id_or_uuid) def get_tool_by_uuid(self, uuid: Optional[Union[UUID, str]]): stmt = select(DynamicTool).where(DynamicTool.uuid == uuid) stmt = select(DynamicTool).where(DynamicTool.uuid == uuid, DynamicTool.public == true()) return self.session().scalars(stmt).one_or_none() def get_tool_by_tool_id(self, tool_id): Loading lib/galaxy/tool_util/toolbox/base.py +1 −1 Original line number Diff line number Diff line Loading @@ -412,7 +412,7 @@ class AbstractToolBox(ManagesIntegratedToolPanelMixin): return panel_view_rendered.has_item_recursive(tool) def load_dynamic_tool(self, dynamic_tool: "DynamicTool") -> Union["Tool", None]: if not dynamic_tool.active: if not dynamic_tool.active or not dynamic_tool.public: return None tool = self.create_dynamic_tool(dynamic_tool) Loading test/unit/app/managers/test_landing.py +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ class MockApp: class MockToolbox: def get_tool(self, tool_id, tool_uuid, tool_version): def get_tool(self, tool_id, tool_uuid, tool_version, user): return MockTool() Loading Loading
lib/galaxy/managers/landing.py +1 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ class LandingRequestManager: request_state = payload.request_state ref = ToolRunReference(tool_id=tool_id, tool_version=tool_version, tool_uuid=None) tool = get_tool_from_toolbox(self.app.toolbox, ref) tool = get_tool_from_toolbox(self.app.toolbox, ref, user=None) landing_request_state = LandingRequestToolState(request_state or {}) # Okay this is a hack until tool request API commit is merged, tools don't yet have a parameter # schema - so we can't do this properly. Loading
lib/galaxy/managers/tools.py +7 −9 Original line number Diff line number Diff line Loading @@ -24,10 +24,12 @@ from galaxy import ( from galaxy.managers.context import ProvidesUserContext from galaxy.model import ( DynamicTool, User, UserDynamicToolAssociation, ) from galaxy.tool_util.cwl import tool_proxy from galaxy.tool_util.parser.yaml import YamlToolSource from galaxy.tool_util.toolbox import AbstractToolBox from galaxy.tool_util_models.dynamic_tool_models import ( DynamicToolPayload, DynamicUnprivilegedToolCreatePayload, Loading Loading @@ -61,17 +63,13 @@ class ToolRunReference(NamedTuple): def get_tool_from_trans(trans: ProvidesUserContext, tool_ref: ToolRunReference) -> Tool: return get_tool_from_toolbox(trans.app.toolbox, tool_ref) return get_tool_from_toolbox(trans.app.toolbox, tool_ref, trans.user) def get_tool_from_toolbox(toolbox, tool_ref: ToolRunReference) -> Tool: get_kwds = dict( tool_id=tool_ref.tool_id, tool_uuid=tool_ref.tool_uuid, tool_version=tool_ref.tool_version, def get_tool_from_toolbox(toolbox: AbstractToolBox, tool_ref: ToolRunReference, user: Optional[User]) -> Tool: tool = toolbox.get_tool( tool_id=tool_ref.tool_id, tool_uuid=tool_ref.tool_uuid, tool_version=tool_ref.tool_version, user=user ) tool = toolbox.get_tool(**get_kwds) if not tool: log.debug(f"Not found tool with kwds [{tool_ref}]") raise exceptions.ToolMissingException("Tool not found.") Loading Loading @@ -102,7 +100,7 @@ class DynamicToolManager(ModelManager[DynamicTool]): return self.get_tool_by_uuid(id_or_uuid) def get_tool_by_uuid(self, uuid: Optional[Union[UUID, str]]): stmt = select(DynamicTool).where(DynamicTool.uuid == uuid) stmt = select(DynamicTool).where(DynamicTool.uuid == uuid, DynamicTool.public == true()) return self.session().scalars(stmt).one_or_none() def get_tool_by_tool_id(self, tool_id): Loading
lib/galaxy/tool_util/toolbox/base.py +1 −1 Original line number Diff line number Diff line Loading @@ -412,7 +412,7 @@ class AbstractToolBox(ManagesIntegratedToolPanelMixin): return panel_view_rendered.has_item_recursive(tool) def load_dynamic_tool(self, dynamic_tool: "DynamicTool") -> Union["Tool", None]: if not dynamic_tool.active: if not dynamic_tool.active or not dynamic_tool.public: return None tool = self.create_dynamic_tool(dynamic_tool) Loading
test/unit/app/managers/test_landing.py +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ class MockApp: class MockToolbox: def get_tool(self, tool_id, tool_uuid, tool_version): def get_tool(self, tool_id, tool_uuid, tool_version, user): return MockTool() Loading