Sostituisci i ruoli diretti di un utente

PUT /v1/users/{user_id}/roles · permesso users:write

Sostituisce i ruoli diretti di ambiente dell'utente con role_ids (l'insieme completo, al massimo 50; un array vuoto li rimuove tutti). I ruoli di organizzazione non possono essere assegnati direttamente; assegnali tramite un'appartenenza all'organizzazione. Riscrivere lo stesso insieme non cambia nulla. Una modifica contrassegna le famiglie di refresh token dell'utente con roles_changed, così il successivo refresh include i nuovi ruoli, ed è registrata nell'audit come user.updated con change=roles. Se l'insieme contiene un ruolo privilegiato (is_privileged), che sia appena aggiunto o mantenuto, la credenziale deve avere anche roles:write; rimuovere un ruolo privilegiato dall'insieme richiede solo users:write.

Richiesta

Campo Tipo Obbligatorio Descrizione
user_id path sì ID utente (usr_…).
role_ids string[] sì L'insieme completo degli ID dei ruoli di ambiente (rol_…), al massimo 50.

Risposta

200 OK con i nuovi ID dei ruoli.

{
  "role_ids": [
    "rol_01j9xr7s1t2w6x8y0z2a4b6c8e"
  ]
}

Errori

HTTP code Quando
403 role_not_assignable Un ruolo è un ruolo di organizzazione.
404 not_found L'utente non esiste in questo ambiente.
422 validation_failed role_ids manca, contiene un ID malformato o sconosciuto (unknown_role), un duplicato, oppure più di 50 elementi.
401 unauthenticated La credenziale manca, non è valida o è stata revocata.
403 insufficient_permissions La credenziale non ha il permesso richiesto. Assegnare un ruolo privilegiato (is_privileged) richiede anche roles:write; senza di esso non viene scritto nulla e required_permissions elenca entrambi i permessi.
429 rate_limited È stato superato il limite di richieste; riprova dopo il periodo indicato in Retry-After.
503 service_unavailable Una dipendenza non è disponibile temporaneamente; riprova dopo il periodo indicato in Retry-After.

Esempio

curl -i -X PUT "https://api.eu.keenauth.com/v1/users/usr_01j9xh2k6p7q1r3s5t7v9w1x3y/roles" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"role_ids":["rol_01j9xr7s1t2w6x8y0z2a4b6c8e"]}'