Skip to content

Commit ddaa081

Browse files
authored
Delete sessions of deleted user (#218)
## Изменения Удаление сессий юзера при его удалении ## Детали реализации При успешном удалении юзера теперь удаляются и его сессии (expired) ## Check-List <!-- После сохранения у следующих полей появятся галочки, которые нужно проставить мышкой --> - [ ] Вы проверили свой код перед отправкой запроса? - [ ] Вы написали тесты к реализованным функциям? - [ ] Вы не забыли применить форматирование `black` и `isort` для _Back-End_ или `Prettier` для _Front-End_?
1 parent a7cc0db commit ddaa081

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

auth_backend/routes/user.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import logging
2+
from datetime import datetime
23
from typing import Any, Literal
34

45
from fastapi import APIRouter, Depends, HTTPException, Query
56
from fastapi_sqlalchemy import db
7+
from sqlalchemy import not_
68
from sqlalchemy.orm import Session
79
from starlette.status import HTTP_403_FORBIDDEN
810

@@ -166,6 +168,10 @@ async def delete_user(
166168
AuthMethod.delete(method.id, session=db.session)
167169
logger.info(f'{method=} for {user.id=} deleted')
168170
User.delete(user_id, session=db.session)
171+
# Удаляем сессии
172+
db.session.query(UserSession).filter(UserSession.user_id == user_id).filter(not_(UserSession.expired)).update(
173+
{"expires": datetime.utcnow()}
174+
)
169175
db.session.commit()
170176
await AuthPluginMeta.user_updated(None, old_user)
171177
logger.info(f'{user=} deleted')

0 commit comments

Comments
 (0)