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 @@ - +