Unverified Commit eb823365 authored by mvdbeek's avatar mvdbeek
Browse files

Don't load custom tools into toolbox

parent ba5122a7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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.
+7 −9
Original line number Diff line number Diff line
@@ -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,
@@ -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.")
@@ -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):
+1 −1
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -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()