Üyeliğin rollerini değiştirin

PUT /v1/organizations/{org_id}/memberships/{membership_id}/roles · izin organizations:write

Üyeliğe manuel olarak atanmış rolleri role_ids ile değiştirir (boş bir dizi bunları kaldırır). IdP eşlemeleri veya dizin kaynaklarıyla verilen roller değiştirilmez. role_version verilirse üyeliğin mevcut version değerine eşit olmalıdır; aksi halde 409 conflict döner. Son yöneticinin yönetici rolü kaldırılamaz. Yazma işlemi organization_membership.updated olarak denetlenir.

İstek

Alan Tür Zorunlu Açıklama
org_id path evet Kuruluş kimliği (org_…).
membership_id path evet Üyelik kimliği (mem_…).
role_ids string[] evet Rol kimliklerinin (rol_…) tam kümesi, en fazla 50.
role_version integer hayır Beklenen üyelik version değeri (1 veya daha büyük).
revoke_sessions boolean hayır Varsayılan true. Ayrıcalıklı (is_privileged) bir rolün kaldırılmasının bu kuruluş bağlamında kullanıcının yenileme jetonu ailelerini iptal edip etmeyeceğini belirler (plan §17.4); false bunu kapatır. Bu sürümde seçim yalnızca organization_membership.updated denetim kaydının revoke_sessions meta verisine yazılır, hiçbir oturum iptal edilmez; iptal kimlik doğrulama servisinde planlanmıştır (planned).

Yanıt

Güncellenmiş üyelik ve ETag değeriyle birlikte 200 OK.

{
  "id": "mem_01j9xn5p9s0t4v6w8x0y2z4a6c",
  "organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "user_id": "usr_01j9xh2k6p7q1r3s5t7v9w1x3y",
  "status": "active",
  "source": "admin_api",
  "reason": null,
  "roles": [
    {
      "role_id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
      "source": "admin_api",
      "assigned_at": "2026-10-12T09:31:00.123456Z"
    }
  ],
  "expires_at": null,
  "created_at": "2026-10-12T09:31:00.123456Z",
  "activated_at": "2026-10-12T09:31:00.123456Z",
  "suspended_at": null,
  "removed_at": null,
  "updated_at": "2026-10-12T09:31:00.123456Z",
  "version": 2
}

Hatalar

HTTP code Ne zaman
404 not_found Üyelik bu kuruluşta mevcut değil.
403 role_not_assignable Bir rol, ortam rolü veya bu kuruluşun rolü değil.
409 conflict role_version, üyeliğin mevcut sürümüyle eşleşmiyor.
409 last_org_admin Değişiklik, kuruluşu etkin bir yöneticisiz bırakırdı.
422 validation_failed role_ids eksik veya geçersiz ya da role_version 1'in altında.
401 unauthenticated Kimlik bilgisi eksik, geçersiz veya iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinin gerekli izni yok. Ayrıcalıklı (is_privileged) bir rolün atanması ayrıca roles:write izni gerektirir; bu izin olmadan 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/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/memberships/mem_01j9xn5p9s0t4v6w8x0y2z4a6c/roles" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"role_ids":["rol_01j9xr7s1t2w6x8y0z2a4b6c8e","rol_01j9xs8t2v3x7y9z1a3b5c7d9f"],"role_version":1}'

Kişisel veriler

Bu uç nokta kişisel veri içerir: kuruluş üyelikleri ve davetler. KeenAuth API'lerinde kişisel veriler neyin saklandığını, ne kadar süre tutulduğunu ve nasıl silindiğini açıklar. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veri, din, siyasi görüş, cinsel yönelim) göndermeyin.