@@ -79,7 +79,16 @@ def create_resource(session: SessionDep, user: CurrentUser, dashboard: CreateDas
7979
8080
8181def update_resource (session : SessionDep , user : CurrentUser , dashboard : QueryDashboard ):
82- record = session .query (CoreDashboard ).filter (CoreDashboard .id == dashboard .id ).first ()
82+ # 添加权限检查:只能更新自己创建的、且在自己工作空间的 Dashboard
83+ record = session .query (CoreDashboard ).filter (
84+ CoreDashboard .id == dashboard .id ,
85+ CoreDashboard .create_by == str (user .id ),
86+ CoreDashboard .workspace_id == str (user .oid if user .oid is not None else 1 )
87+ ).first ()
88+
89+ if not record :
90+ raise ValueError (f"Dashboard with id { dashboard .id } does not exist or you do not have permission to update it" )
91+
8392 record .name = dashboard .name
8493 record .update_by = user .id
8594 record .update_time = int (time .time ())
@@ -102,7 +111,16 @@ def create_canvas(session: SessionDep, user: CurrentUser, dashboard: CreateDashb
102111
103112
104113def update_canvas (session : SessionDep , user : CurrentUser , dashboard : CreateDashboard ):
105- record = session .query (CoreDashboard ).filter (CoreDashboard .id == dashboard .id ).first ()
114+ # 添加权限检查:只能更新自己创建的、且在自己工作空间的 Dashboard
115+ record = session .query (CoreDashboard ).filter (
116+ CoreDashboard .id == dashboard .id ,
117+ CoreDashboard .create_by == str (user .id ),
118+ CoreDashboard .workspace_id == str (user .oid if user .oid is not None else 1 )
119+ ).first ()
120+
121+ if not record :
122+ raise ValueError (f"Dashboard with id { dashboard .id } does not exist or you do not have permission to update it" )
123+
106124 record .name = dashboard .name
107125 record .update_by = user .id
108126 record .update_time = int (time .time ())
0 commit comments