Granting a permission to a user id with no account answers 500 instead of 404

Offen Anfängerfreundlich
#1,002 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@amarkanday arbeitet bereits daran.

Seit 06.11.2026.

  • #1790 von @amarkanday — offen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
Ein halber Tag
Anfängerfreundlichkeit
76/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
api, backend

Rechercherichtung

Beginne beim Handler der RBAC-Grant-Route für POST /api/v1/rbac/users/{user_id}/grant und der Benutzersuche, die von der gleichartigen Permissions-Route verwendet wird und bereits 404 zurückgibt. Füge die fehlende Suche vor dem Einfügen des Grants hinzu, damit eine nicht vorhandene UUID 404 statt eines Datenbankfehlers zurückgibt, und entscheide, ob die user_id aus dem Body verworfen oder bei einer Abweichung von der ID im Pfad ein Fehler zurückgegeben werden soll. Führe die RBAC-API-Tests für Benutzer-Grants und Permissions aus, um zu bestätigen, dass der neue 404-Fall funktioniert und bestehende Grants weiterhin funktionieren.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug post-launch
  • Sent: POST /api/v1/rbac/users/{user_id}/grant with a valid body, where {user_id} is a well-formed UUID that
    belongs to no account.
  • Comes back: 500 with the generic error body. The grant is inserted without looking the user up, and the database
    refuses the row. Nothing is saved.
  • Expected: 404 "User not found", as GET /api/v1/rbac/users/{user_id}/permissions answers for the same id.
  • Also: the body's required user_id is not used (the path's id is); either drop it or refuse a body whose
    user_id differs from the path, as the counter routes do (#95).
  • Reproduction (ADMIN):
    curl -X POST -H "Authorization: Bearer <ADMIN token>" -H 'Content-Type: application/json' \
         -d '{"user_id":"00000000-0000-0000-0000-000000000001","resource":"experiment","actions":["read"]}' \
         http://localhost:8000/api/v1/rbac/users/00000000-0000-0000-0000-000000000001/grant
    

Found by API fuzzing (a local run), reproduced by hand.

Vorherrschende Sprache
Python
Sterne
0
Forks
4
Ø Merge
6 Std. 43 Min.
Gemergte PRs (30 T.)
414

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 Controlvar/controlvar

Alle Issues in Controlvar/controlvar

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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