fix: delete_user cascade — pages n'a pas de owner_id, passe par workspace_id
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped

This commit is contained in:
2026-07-13 21:02:10 -04:00
parent aa2354a25a
commit 1e36b03532
+7 -1
View File
@@ -116,10 +116,16 @@ async def delete_user(user_id: int, _admin=Depends(admin_required)):
user = conn.execute("SELECT id FROM users WHERE id=?", (user_id,)).fetchone()
if not user:
return JSONResponse({"error": "User not found"}, status_code=404)
# Cascade delete: first delete child records
conn.execute("DELETE FROM login_history WHERE user_id=?", (user_id,))
conn.execute("DELETE FROM user_oauth_tokens WHERE user_id=?", (user_id,))
conn.execute("DELETE FROM user_tokens WHERE gitea_user_id=?", (user_id,))
conn.execute("DELETE FROM pages WHERE owner_id=?", (user_id,))
conn.execute("DELETE FROM workspace_members WHERE user_id=?", (user_id,))
# Delete workspaces owned by this user
ws_rows = conn.execute("SELECT id FROM workspaces WHERE owner_id=?", (user_id,)).fetchall()
for ws in ws_rows:
conn.execute("DELETE FROM pages WHERE workspace_id=?", (ws["id"],))
conn.execute("DELETE FROM workspace_members WHERE workspace_id=?", (ws["id"],))
conn.execute("DELETE FROM workspaces WHERE owner_id=?", (user_id,))
conn.execute("DELETE FROM users WHERE id=?", (user_id,))
conn.commit()