From 04aaff88511ff8175f8fdba93c5732dd50788f04 Mon Sep 17 00:00:00 2001 From: v6ole Date: Sat, 27 Jun 2026 11:53:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E5=B1=80=E9=95=BF=E5=8F=AF?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=20+=20=E6=B8=85=E7=90=86?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E8=93=9D=E6=B5=A9=E5=8D=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 DELETE /api/users/{id} (require_director, 不能删自己) - 用户管理页新增「删除」按钮(仅支局长可见) - 删除重复的分管领导蓝浩博 Co-Authored-By: Claude --- backend/app/api/users.py | 20 ++++++++++++++++++++ frontend/src/views/desktop/UserManage.vue | 14 ++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/backend/app/api/users.py b/backend/app/api/users.py index 71a266b..2aa1323 100644 --- a/backend/app/api/users.py +++ b/backend/app/api/users.py @@ -122,3 +122,23 @@ async def update_user_wecom( "name": user.name, "wecom_userid": user.wecom_userid, } + + +@router.delete("/{user_id}") +async def delete_user( + user_id: str, + current_user: dict = Depends(require_director), + db: AsyncSession = Depends(get_db), +): + """Director deletes a user. Cannot delete self.""" + if user_id == current_user["user_id"]: + raise HTTPException(status_code=400, detail="不能删除自己") + + result = await db.execute(select(User).where(User.id == uuid.UUID(user_id))) + user = result.scalar_one_or_none() + if not user: + raise HTTPException(status_code=404, detail="User not found") + + await db.delete(user) + await db.commit() + return {"detail": "deleted", "name": user.name} diff --git a/frontend/src/views/desktop/UserManage.vue b/frontend/src/views/desktop/UserManage.vue index 4472ea8..65520d4 100644 --- a/frontend/src/views/desktop/UserManage.vue +++ b/frontend/src/views/desktop/UserManage.vue @@ -1,6 +1,6 @@ - +