Kullanıcının doğrudan rollerini değiştir

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

Kullanıcının doğrudan ortam rollerini role_ids ile değiştirir (tam küme, en çok 50; boş dizi hepsini kaldırır). Org rolleri doğrudan atanamaz; org üyeliği üzerinden atanır. Aynı kümeyi yeniden yazmak hiçbir şeyi değiştirmez. Değişiklik kullanıcının refresh token ailelerine roles_changed işareti koyar (sonraki refresh yeni rolleri taşır) ve change=roles ile user.updated olarak audit'e düşer. Kümede ayrıcalıklı (is_privileged) rol varsa (yeni eklenen ya da korunan) kimlik bilgisi ayrıca roles:write taşımalıdır; ayrıcalıklı rolü kümeden çıkarmak yalnız users:write ister.

İstek

Alan Tür Zorunlu Açıklama
user_id path evet Kullanıcı kimliği (usr_…).
role_ids string[] evet Ortam rolü kimliklerinin tam kümesi (rol_…), en çok 50.

Yanıt

200 OK; yeni rol kimlikleri.

{
  "role_ids": [
    "rol_01j9xr7s1t2w6x8y0z2a4b6c8e"
  ]
}

Hatalar

HTTP code Ne zaman
403 role_not_assignable Bir rol org rolü.
404 not_found Kullanıcı bu ortamda yok.
422 validation_failed role_ids yok, biçimsiz ya da bilinmeyen kimlik (unknown_role), tekrar ya da 50'den fazla öğe içeriyor.
401 unauthenticated Kimlik bilgisi yok, geçersiz ya da iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinde gerekli izin yok. Ayrıcalıklı (is_privileged) rol atamak ayrıca roles:write ister; yoksa hiçbir şey yazılmaz ve required_permissions iki izni de listeler.
429 rate_limited Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin.
503 service_unavailable Bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin.

Örnek

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"]}'