@@ -105,9 +105,14 @@ async def ws_list(session: SessionDep, trans: Trans, token: str):
105105
106106
107107@router .post ("/mcp_ds_list" , operation_id = "mcp_datasource_list" )
108- async def datasource_list (session : SessionDep , mcp_ds : McpDs ):
108+ async def datasource_list (session : SessionDep , trans : Trans , mcp_ds : McpDs ):
109109 session_user = get_user (session , mcp_ds .token )
110110 if mcp_ds .oid :
111+ w_list = await user_ws_options (session , session_user .id , trans )
112+ oid_list = [item .id for item in w_list ]
113+ if int (mcp_ds .oid ) not in oid_list :
114+ raise HTTPException (status_code = 400 , detail = "This user not in current workspace" )
115+
111116 session_user .oid = int (mcp_ds .oid )
112117 ds_list = get_datasource_list (session = session , user = session_user )
113118 result = []
@@ -129,12 +134,17 @@ async def datasource_list(session: SessionDep, mcp_ds: McpDs):
129134
130135
131136@router .post ("/mcp_question" , operation_id = "mcp_question" )
132- async def mcp_question (session : SessionDep , chat : McpQuestion ):
137+ async def mcp_question (session : SessionDep , trans : Trans , chat : McpQuestion ):
133138 session_user = get_user (session , chat .token )
134139 lang = chat .lang
135140 if lang in ["zh-CN" , "zh-TW" , "en" , "ko-KR" ]:
136141 session_user .language = lang
137142 if chat .oid :
143+ w_list = await user_ws_options (session , session_user .id , trans )
144+ oid_list = [item .id for item in w_list ]
145+ if int (chat .oid ) not in oid_list :
146+ raise HTTPException (status_code = 400 , detail = "This user not in current workspace" )
147+
138148 session_user .oid = int (chat .oid )
139149 ds_id : Optional [int ] = None
140150 if chat .datasource_id :
0 commit comments