diff --git a/backend/apps/dashboard/api/dashboard_api.py b/backend/apps/dashboard/api/dashboard_api.py index f290d8d3..21fb58f1 100644 --- a/backend/apps/dashboard/api/dashboard_api.py +++ b/backend/apps/dashboard/api/dashboard_api.py @@ -2,15 +2,15 @@ from fastapi import APIRouter, File, UploadFile, HTTPException from apps.dashboard.crud.dashboard_service import list_resource, load_resource, \ create_resource, create_canvas, validate_name, delete_resource, update_resource, update_canvas -from apps.dashboard.models.dashboard_model import CreateDashboard, BaseDashboard, QueryDashboard,DashboardResponse +from apps.dashboard.models.dashboard_model import CreateDashboard, BaseDashboard, QueryDashboard, DashboardResponse from common.core.deps import SessionDep, CurrentUser router = APIRouter(tags=["dashboard"], prefix="/dashboard") @router.post("/list_resource") -async def list_resource_api(session: SessionDep, dashboard: QueryDashboard): - return list_resource(session=session, dashboard=dashboard) +async def list_resource_api(session: SessionDep, dashboard: QueryDashboard, current_user: CurrentUser): + return list_resource(session=session, dashboard=dashboard, current_user=current_user) @router.post("/load_resource") diff --git a/backend/apps/dashboard/crud/dashboard_service.py b/backend/apps/dashboard/crud/dashboard_service.py index 93c59607..982d9e78 100644 --- a/backend/apps/dashboard/crud/dashboard_service.py +++ b/backend/apps/dashboard/crud/dashboard_service.py @@ -1,5 +1,5 @@ from sqlalchemy import select, and_, text -from apps.dashboard.models.dashboard_model import CoreDashboard, CreateDashboard, QueryDashboard,DashboardBaseResponse +from apps.dashboard.models.dashboard_model import CoreDashboard, CreateDashboard, QueryDashboard, DashboardBaseResponse from common.core.deps import SessionDep, CurrentUser import uuid import time @@ -7,10 +7,15 @@ import time from common.utils.tree_utils import build_tree_generic -def list_resource(session: SessionDep, dashboard: QueryDashboard): +def list_resource(session: SessionDep, dashboard: QueryDashboard, current_user: CurrentUser): sql = "SELECT id, name, type, node_type, pid, create_time FROM core_dashboard" filters = [] params = {} + oid = str(current_user.oid if current_user.oid is not None else 1) + filters.append("workspace_id = :workspace_id") + filters.append("create_by = :create_by") + params["workspace_id"] = oid + params["create_by"] = str(current_user.id) if dashboard.node_type is not None and dashboard.node_type != "": filters.append("node_type = :node_type") params["node_type"] = dashboard.node_type @@ -42,6 +47,7 @@ def load_resource(session: SessionDep, dashboard: QueryDashboard): def get_create_base_info(user: CurrentUser, dashboard: CreateDashboard): new_id = uuid.uuid4().hex record = CoreDashboard(**dashboard.model_dump()) + record.workspace_id = user.oid record.id = new_id record.create_by = user.id record.create_time = int(time.time()) @@ -66,6 +72,7 @@ def update_resource(session: SessionDep, user: CurrentUser, dashboard: QueryDash session.commit() return record + def create_canvas(session: SessionDep, user: CurrentUser, dashboard: CreateDashboard): record = get_create_base_info(user, dashboard) record.node_type = dashboard.node_type