mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
refactor: dashboard with auth
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user