From 978cadf11b12e7a13281f5a5fa18bc5f015d841bdfc98af0bc8cb33ddb87f0ba Mon Sep 17 00:00:00 2001 From: vladislav Date: Thu, 10 Sep 2026 07:20:48 -0400 Subject: [PATCH] feat --- main.ipynb | 24 ++++++++++++++++++++++++ main.py | 16 ++++++++++++++++ models.py | 4 ++++ templates/profile/admin/users.html | 26 ++++++++++++++++++++++++++ 4 files changed, 70 insertions(+) diff --git a/main.ipynb b/main.ipynb index 866947a..8ec3546 100644 --- a/main.ipynb +++ b/main.ipynb @@ -4219,6 +4219,30 @@ ], "display_name": ".venv" }, + { + "cell_type": "code", + "execution_count": null, + "id": "c7c3772b", + "metadata": {}, + "outputs": [], + "source": [ + "@app.post(\"/api/admin/delete-user\")\n", + "async def delete_user(\n", + " payload: DeleteUserRequest,\n", + " user: Dict = Security(get_current_user, scopes=[\"admin\"]),\n", + "):\n", + " try:\n", + " result = users_collection.delete_one({\"_id\": ObjectId(payload._id)})\n", + " except Exception:\n", + " raise HTTPException(status_code=400, detail=\"Неверный ID пользователя\")\n", + "\n", + " if result.deleted_count == 0:\n", + " raise HTTPException(status_code=404, detail=\"Пользователь не найден\")\n", + "\n", + " return {\"ok\": True}\n" + ], + "display_name": ".venv" + }, { "cell_type": "code", "execution_count": null, diff --git a/main.py b/main.py index af6af1e..d1d4273 100644 --- a/main.py +++ b/main.py @@ -3251,6 +3251,22 @@ async def unsubscribe( """ +@app.post("/api/admin/delete-user") +async def delete_user( + payload: DeleteUserRequest, + user: Dict = Security(get_current_user, scopes=["admin"]), +): + try: + result = users_collection.delete_one({"_id": ObjectId(payload._id)}) + except Exception: + raise HTTPException(status_code=400, detail="Неверный ID пользователя") + + if result.deleted_count == 0: + raise HTTPException(status_code=404, detail="Пользователь не найден") + + return {"ok": True} + + @app.get("/profile/admin/users", response_class=HTMLResponse) async def profile_admin_statistics( request: Request, diff --git a/models.py b/models.py index 09c00fe..a3e0e58 100644 --- a/models.py +++ b/models.py @@ -70,6 +70,10 @@ class UserLoginForm(OAuth2PasswordRequestForm): pass +class DeleteUserRequest(BaseModel): + _id: str + + class LoginRequest(BaseModel): identifier: str password: str diff --git a/templates/profile/admin/users.html b/templates/profile/admin/users.html index ae77130..736ae33 100644 --- a/templates/profile/admin/users.html +++ b/templates/profile/admin/users.html @@ -42,6 +42,7 @@ Телефон Место проживания Дата рождения + ... @@ -54,11 +55,36 @@ {{doc.phone or ""}} {{doc.living_place or ""}} {{doc.birthday or ""}} + {% endfor %} +