refactor: dashboard with auth

This commit is contained in:
wangjiahao
2025-07-21 12:23:42 +08:00
parent 8cd16be335
commit 6fb855c669
2 changed files with 12 additions and 5 deletions
+3 -3
View File
@@ -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")
@@ -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