From 7537989235675ac84a40bf70c91ec3e16fc0d8db Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 27 Jul 2026 03:41:08 -0400 Subject: [PATCH] refac --- backend/open_webui/routers/terminals.py | 7 +++++++ backend/open_webui/utils/tools.py | 2 ++ 2 files changed, 9 insertions(+) diff --git a/backend/open_webui/routers/terminals.py b/backend/open_webui/routers/terminals.py index a66094994e..b2f997cb38 100644 --- a/backend/open_webui/routers/terminals.py +++ b/backend/open_webui/routers/terminals.py @@ -100,6 +100,9 @@ async def proxy_terminal( if connection is None: return JSONResponse({'error': f"Terminal server '{server_id}' not found"}, status_code=404) + if not connection.get('enabled', True): + return JSONResponse({'error': 'Terminal server disabled'}, status_code=403) + user_group_ids = {group.id for group in await Groups.get_groups_by_member_id(user.id)} if not await has_connection_access(user, connection, user_group_ids): return JSONResponse({'error': 'Access denied'}, status_code=403) @@ -248,6 +251,10 @@ async def _resolve_authenticated_connection(ws: WebSocket, server_id: str): await ws.close(code=4004, reason='Terminal server not found') return None + if not connection.get('enabled', True): + await ws.close(code=4003, reason='Terminal server disabled') + return None + user_group_ids = {group.id for group in await Groups.get_groups_by_member_id(user.id)} if not await has_connection_access(user, connection, user_group_ids): await ws.close(code=4003, reason='Access denied') diff --git a/backend/open_webui/utils/tools.py b/backend/open_webui/utils/tools.py index e02570c2f4..3f7d2aa094 100644 --- a/backend/open_webui/utils/tools.py +++ b/backend/open_webui/utils/tools.py @@ -1325,6 +1325,8 @@ async def get_terminal_tools( connection = next((c for c in connections if c.get('id') == terminal_id), None) if connection is None: raise RuntimeError(f"Terminal server '{terminal_id}' not found") + if not connection.get('enabled', True): + raise RuntimeError(f"Terminal server '{terminal_id}' is disabled") user_group_ids = {group.id for group in await Groups.get_groups_by_member_id(user.id)} if not await has_connection_access(user, connection, user_group_ids):