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 @@
@@ -89,9 +98,10 @@ async function handleSave() {
未绑定
-
+
编辑
+ 删除