feat(admin): Bulk "alle Nutzerdaten löschen (Konten behalten)" + Nutzerliste alphabetisch
- DELETE /api/admin/user-data: loescht fuer ALLE Nutzer Verlauf, Statistik (usage/web_search_usage/cost_usage) und Erinnerungen; Konten bleiben. Gefahrenzone-Knopf mit doppelter Bestaetigung, audit-geloggt. - list_users jetzt ORDER BY LOWER(display_name) -> Nutzerkarten alphabetisch (ohne Gross-/Kleinschreibung). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
8fb5e42e1b
commit
c337ea4309
4 changed files with 46 additions and 1 deletions
|
|
@ -166,6 +166,15 @@ async def delete_user_memories(user_id: str, request: Request):
|
|||
return {"user_id": user_id, "deleted_memories": deleted}
|
||||
|
||||
|
||||
@router.delete("/admin/user-data", dependencies=[Depends(require_admin)])
|
||||
async def wipe_all_user_data(request: Request):
|
||||
"""Loescht fuer ALLE Nutzer Verlauf, Statistik und Erinnerungen; die Konten
|
||||
selbst bleiben erhalten. Nicht umkehrbar."""
|
||||
counts = get_store().wipe_all_user_data()
|
||||
log_admin_action(request, "all_user_data_wiped")
|
||||
return counts
|
||||
|
||||
|
||||
@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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue