feat(admin): "Verlauf löschen" pro Nutzer (Konto bleibt)

Store.delete_user_history (loescht Sessions + Nachrichten eines Nutzers, ohne
Konto/Erinnerungen/Usage) + DELETE /api/admin/users/{id}/history (audit-geloggt)
+ Button im Admin-Nutzer-Bereich.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-30 09:08:43 +02:00
commit 69894b1e7b
3 changed files with 36 additions and 0 deletions

View file

@ -131,6 +131,18 @@ async def delete_user(user_id: str):
return {"deleted": user_id}
@router.delete("/admin/users/{user_id}/history", dependencies=[Depends(require_admin)])
async def delete_user_history(user_id: str, request: Request):
"""Loescht NUR den Gespraechsverlauf (Sessions + Nachrichten) eines Nutzers;
Konto, Erinnerungen und Nutzungsdaten bleiben erhalten."""
store = get_store()
if store.get_user(user_id) is None:
raise HTTPException(status_code=404, detail=f"Nutzer {user_id!r} nicht gefunden.")
deleted = store.delete_user_history(user_id)
log_admin_action(request, "user_history_deleted", user_id=user_id)
return {"user_id": user_id, "deleted_messages": deleted}
@router.post("/admin/users/{user_id}/token", response_model=UserCreated, dependencies=[Depends(require_admin)])
async def reset_token(user_id: str):
"""Stellt einen neuen Bearer-Token aus; der alte wird sofort ungueltig.