Let admins delete a signed-in user's account

Offen
#4,271 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@anth-volk arbeitet bereits daran.

Seit 10.11.2026.

  • #4272 von @anth-volk — offen

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
python

Rechercherichtung

Start with the existing DELETE /v2/me handler and the admin user routes under /v2/admin/users; the issue names no file or test paths. Trace the deletion transaction, Auth0 cleanup, and advisory lock checks, then inspect the linked pull request #4272 for work already underway. Done means the admin route and shared deletion behavior meet the listed status, authorization, logging, and Auth0 cleanup requirements.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Admins can list signed-in users, read one, change their types and read their type history under /v2/admin/users (#4261), but cannot delete a user's account. Users can delete only their own, with DELETE /v2/me.

Add DELETE /v2/admin/users/{user_id} so that an admin can delete another signed-in user's account and saved records, including the Auth0 users of its sign-in identities, exactly as DELETE /v2/me deletes one's own:

  • prepare the Auth0 Management deleter before touching data (503 with nothing deleted when it can't be prepared);
  • 204 on success, 502 when an Auth0 deletion fails after the data is gone, 404 for an absent or unauthenticated user ID, 409 for the last admin;
  • after the data is deleted, try every one of the account's Auth0 users before reporting a failure, for this route and for DELETE /v2/me, and say how many remain;
  • admins only (403 below admin): the router's admin check, plus a check inside the deletion's own transaction under the user-type change advisory lock, as type changes do;
  • an admin deleting their own account through this route follows the same last-admin rule as DELETE /v2/me;
  • record each deletion as a log event naming the admin's and the deleted user's v2 IDs, never emails or tokens;
  • share the deletion logic with DELETE /v2/me rather than copying it.
Vorherrschende Sprache
Python
Sterne
18
Forks
33
Ø Merge
2 T. 10 Std.
Gemergte PRs (30 T.)
124

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus PolicyEngine/policyengine-api

Alle Issues in PolicyEngine/policyengine-api

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.