Ü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.