From fb93143a17e7c5a70d51563caf8cfcd7f2840342 Mon Sep 17 00:00:00 2001 From: jingrow Date: Mon, 3 Nov 2025 00:47:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E5=92=8C=E6=99=BA=E8=83=BD=E4=BD=93=E7=9A=84=E7=AB=AF?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jcloud/api/local_app.py | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/jcloud/api/local_app.py b/jcloud/api/local_app.py index b9d2206..bd83588 100644 --- a/jcloud/api/local_app.py +++ b/jcloud/api/local_app.py @@ -418,3 +418,49 @@ def get_my_local_agent_list(filters=None, order_by=None, limit_start=None, limit result.append(agent_data) return result + + +@dashboard_whitelist() +def delete_local_node(name): + """删除本地节点""" + + team = get_current_team() + if not team: + return {"success": False, "message": "未找到当前团队信息"} + + if not jingrow.db.exists("Local Node", name): + return {"success": False, "message": "节点不存在"} + + node = jingrow.get_pg("Local Node", name) + + # 验证权限:只能删除自己团队的节点 + if node.team != team: + return {"success": False, "message": "您没有权限操作此节点"} + + # 使用 ignore_permissions=True 因为我们已经手动验证了团队权限 + node.delete(ignore_permissions=True) + + return {"success": True, "message": "节点删除成功"} + + +@dashboard_whitelist() +def delete_local_agent(name): + """删除本地Agent""" + + team = get_current_team() + if not team: + return {"success": False, "message": "未找到当前团队信息"} + + if not jingrow.db.exists("Local Agent", name): + return {"success": False, "message": "Agent不存在"} + + agent = jingrow.get_pg("Local Agent", name) + + # 验证权限:只能删除自己团队的Agent + if agent.team != team: + return {"success": False, "message": "您没有权限操作此Agent"} + + # 使用 ignore_permissions=True 因为我们已经手动验证了团队权限 + agent.delete(ignore_permissions=True) + + return {"success": True, "message": "Agent删除成功"}