fix: Assistant change ds by workspace

This commit is contained in:
fit2cloud-chenyw
2025-07-25 21:47:27 +08:00
parent a26b8e5335
commit a37fc3507b
4 changed files with 24 additions and 11 deletions
@@ -18,6 +18,11 @@ from ..models.datasource import CoreDatasource, CreateDatasource, TableObj, Core
router = APIRouter(tags=["datasource"], prefix="/datasource")
path = "/opt/sqlbot/data/excel"
@router.get("/ws/{oid}", include_in_schema=False)
async def query_by_oid(session: SessionDep, user: CurrentUser, oid: int) -> List[CoreDatasource]:
if not user.isAdmin:
raise Exception("no permission to execute")
return get_datasource_list(session=session, user=user, oid=oid)
@router.get("/list")
async def datasource_list(session: SessionDep, user: CurrentUser):
+8 -5
View File
@@ -1,6 +1,6 @@
import datetime
import json
from typing import List
from typing import List, Optional
from fastapi import HTTPException
from sqlalchemy import and_, text, cast, or_, func
@@ -25,10 +25,13 @@ from ..models.datasource import CoreDatasource, CreateDatasource, CoreTable, Cor
DatasourceConf, TableAndFields
def get_datasource_list(session: SessionDep, user: CurrentUser):
oid = user.oid if user.oid is not None else 1
return session.query(CoreDatasource).filter(CoreDatasource.oid == oid).order_by(
func.convert_to(CoreDatasource.name, 'gbk')).all()
def get_datasource_list(session: SessionDep, user: CurrentUser, oid: Optional[int] = None) -> List[CoreDatasource]:
current_oid = user.oid if user.oid is not None else 1
if user.isAdmin and oid:
current_oid = oid
return session.exec(select(CoreDatasource).where(CoreDatasource.oid == current_oid).order_by(
func.convert_to(CoreDatasource.name, 'gbk'))).all()
def get_ds(session: SessionDep, id: int):