Log proper action for delete_session depending on what function it performs: logout, delete_session (user's own) or admin:delete_session.

This commit is contained in:
Leo Vasanko
2026-01-29 22:44:22 +00:00
parent 4258ddcf04
commit 75c592dbc0
3 changed files with 7 additions and 5 deletions
+5 -3
View File
@@ -517,16 +517,18 @@ def set_session_host(key: str, host: str, *, ctx: SessionContext | None = None)
update_session(key, host=host, ctx=ctx)
def delete_session(key: str, *, ctx: SessionContext | None = None) -> None:
def delete_session(
key: str, *, ctx: SessionContext | None = None, action: str = "delete_session"
) -> None:
"""Delete a session.
The acting user should be logged via ctx.
For user logout, pass ctx of the user's session.
For user logout, pass ctx of the user's session and action="logout".
For admin terminating a session, pass admin's ctx.
"""
if key not in _db.sessions:
raise ValueError("Session not found")
with _db.transaction("delete_session", ctx):
with _db.transaction(action, ctx):
del _db.sessions[key]
+1 -1
View File
@@ -706,7 +706,7 @@ async def admin_delete_user_session(
if not target_session or target_session.user_uuid != user_uuid:
raise HTTPException(status_code=404, detail="Session not found")
db.delete_session(session_id, ctx=ctx)
db.delete_session(session_id, ctx=ctx, action="admin:delete_session")
# Check if admin terminated their own session
current_terminated = session_id == auth
+1 -1
View File
@@ -252,7 +252,7 @@ async def api_logout(request: Request, response: Response, auth=AUTH_COOKIE):
if not ctx:
return {"message": "Already logged out"}
with suppress(Exception):
db.delete_session(auth, ctx=ctx)
db.delete_session(auth, ctx=ctx, action="logout")
session.clear_session_cookie(response)
return {"message": "Logged out successfully"}