From c21af2732eef14994bc0fdc9d65c7bb438fb939f Mon Sep 17 00:00:00 2001 From: ribardej Date: Wed, 15 Oct 2025 11:11:04 +0200 Subject: [PATCH] feat(backend): implemented self delete for users --- 7project/backend/app/api/auth.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/7project/backend/app/api/auth.py b/7project/backend/app/api/auth.py index 576e80e..075600c 100644 --- a/7project/backend/app/api/auth.py +++ b/7project/backend/app/api/auth.py @@ -1,10 +1,28 @@ -from fastapi import APIRouter +from fastapi import APIRouter, Depends, status +from fastapi_users import models +from fastapi_users.manager import BaseUserManager from app.schemas.user import UserCreate, UserRead, UserUpdate from app.services.user_service import auth_backend, fastapi_users router = APIRouter() +@router.delete( + "/users/me", + status_code=status.HTTP_204_NO_CONTENT, + tags=["users"], + summary="Delete current user", + response_description="The user has been successfully deleted.", +) +async def delete_me( + user: models.UserProtocol = Depends(fastapi_users.current_user(active=True)), + user_manager: BaseUserManager = Depends(fastapi_users.get_user_manager), +): + """ + Delete the currently authenticated user. + """ + await user_manager.delete(user) + # Keep existing paths as-is under /auth/* and /users/* router.include_router( fastapi_users.get_auth_router(auth_backend), prefix="/auth/jwt", tags=["auth"]