From e0b912234685a834817f41b0601705c0dec4df33 Mon Sep 17 00:00:00 2001 From: Timur Enikeev Date: Tue, 22 Oct 2024 13:21:59 -0400 Subject: [PATCH 1/4] Delete sessions after deleting user --- auth_backend/routes/user.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/auth_backend/routes/user.py b/auth_backend/routes/user.py index dd1aadc4..3ddac7bb 100644 --- a/auth_backend/routes/user.py +++ b/auth_backend/routes/user.py @@ -1,8 +1,10 @@ import logging +from datetime import datetime from typing import Any, Literal from fastapi import APIRouter, Depends, HTTPException, Query from fastapi_sqlalchemy import db +from sqlalchemy import not_ from sqlalchemy.orm import Session from starlette.status import HTTP_403_FORBIDDEN @@ -154,7 +156,6 @@ async def delete_user( logger.debug(f'User id={current_user.id} triggered delete_user') old_user = {"user_id": current_user.id} user: User = User.get(user_id, session=db.session) - for method in user._auth_methods: if method.is_deleted: continue @@ -166,6 +167,10 @@ async def delete_user( AuthMethod.delete(method.id, session=db.session) logger.info(f'{method=} for {user.id=} deleted') User.delete(user_id, session=db.session) + # Удаляем сессии + db.session.query(UserSession).filter(UserSession.user_id == current_user.user_id).filter( + not_(UserSession.expired) + ).update({"expires": datetime.utcnow()}) db.session.commit() await AuthPluginMeta.user_updated(None, old_user) logger.info(f'{user=} deleted') From 56faef695eb5ed330fd5e9bb5d64f7bc86c29444 Mon Sep 17 00:00:00 2001 From: Timur Enikeev Date: Tue, 22 Oct 2024 13:31:27 -0400 Subject: [PATCH 2/4] Fix dosadniy bug --- auth_backend/routes/user.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/auth_backend/routes/user.py b/auth_backend/routes/user.py index 3ddac7bb..8f59e57e 100644 --- a/auth_backend/routes/user.py +++ b/auth_backend/routes/user.py @@ -168,9 +168,9 @@ async def delete_user( logger.info(f'{method=} for {user.id=} deleted') User.delete(user_id, session=db.session) # Удаляем сессии - db.session.query(UserSession).filter(UserSession.user_id == current_user.user_id).filter( - not_(UserSession.expired) - ).update({"expires": datetime.utcnow()}) + db.session.query(UserSession).filter(UserSession.user_id == user_id).filter(not_(UserSession.expired)).update( + {"expires": datetime.utcnow()} + ) db.session.commit() await AuthPluginMeta.user_updated(None, old_user) logger.info(f'{user=} deleted') From 480312d6ab17f97d62e8c725ba333a38a9de8838 Mon Sep 17 00:00:00 2001 From: Timur Enikeev <163281083+DaymasS@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:35:10 -0400 Subject: [PATCH 3/4] style fix --- auth_backend/routes/user.py | 1 + 1 file changed, 1 insertion(+) diff --git a/auth_backend/routes/user.py b/auth_backend/routes/user.py index 8f59e57e..d226b045 100644 --- a/auth_backend/routes/user.py +++ b/auth_backend/routes/user.py @@ -156,6 +156,7 @@ async def delete_user( logger.debug(f'User id={current_user.id} triggered delete_user') old_user = {"user_id": current_user.id} user: User = User.get(user_id, session=db.session) + for method in user._auth_methods: if method.is_deleted: continue From e0815e11357117f2a3e82a10bcb5cb9b44a284b1 Mon Sep 17 00:00:00 2001 From: Timur Enikeev <163281083+DaymasS@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:38:00 -0400 Subject: [PATCH 4/4] Style fix --- auth_backend/routes/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auth_backend/routes/user.py b/auth_backend/routes/user.py index d226b045..8974355f 100644 --- a/auth_backend/routes/user.py +++ b/auth_backend/routes/user.py @@ -156,7 +156,7 @@ async def delete_user( logger.debug(f'User id={current_user.id} triggered delete_user') old_user = {"user_id": current_user.id} user: User = User.get(user_id, session=db.session) - + for method in user._auth_methods: if method.is_deleted: continue