Bir üyenin rollerini ayarlayın
PUT /fapi/v1/organizations/{org_id}/memberships/{membership_id}/roles · ortamın giriş yap ana makinesinden çağrılır
Bir üyeliğin rollerini, kuruluş profil ekranı için tam bir kümeyle değiştirir. Küme yalnızca bu kuruluşta görebildiğiniz rolleri kapsar: kuruluşun kendi rolleri ile kuruluş yöneticilerine açık ortam rolleri. Üyenin diğer rolleri korunur. Boş bir küme, görebildiğiniz tüm rolleri kaldırır; üyenin hiç rolü kalmazsa kuruluşun varsayılan rolü atanır.
Kimliği doğrulanmış kullanıcının tam eşleşen Origin değerine sahip __Host-idp_session çerezi veya birinci taraf bir uygulamanın ön API erişim belirteci (DPoP kanıtıyla Authorization: DPoP <token>; bkz. Ön API erişim belirteci) gereklidir. Kullanıcı, kuruluşun etkin bir üyesi olmalı ve idp_members:update_roles iznine sahip olmalıdır. Üye olmayan bir kullanıcı 404 not_found yanıtı alır; bu izne sahip olmayan bir üye 403 insufficient_permissions yanıtı alır.
Atama kuralları:
- Atadığınız her rolün her izni, sizin de sahip olduğunuz bir izin olmalıdır.
- Yalnızca yönetici rolüne sahip bir üye, ayrıcalıklı bir rol atayabilir.
- Kendi rollerinizi değiştiremezsiniz.
- Son etkin yönetici, yönetici rolünü kaybedemez (
409 last_org_admin).
@keenauth/js ile: await keenauth.organizations.setMemberRoles(orgId, membershipId, [roleId], { expectedVersion: 3 }).
İstek
Üstbilgiler:
| Üstbilgi | Zorunlu | Açıklama |
|---|---|---|
Idp-Client |
evet | SDK tanımlayıcısı. |
Origin |
evet, çerezle birlikte | https://<sign-in host>. |
If-Match |
hayır | Üye listesinden alınan tek bir sürüm, "<version>". Eşleşmeyen bir sürüm ya da birden fazla sürüm 412 precondition_failed döndürür. |
org_id: kuruluş tanımlayıcısı (org_…). membership_id: üyelik tanımlayıcısı (mem_…).
Gövde: {"role_ids": ["rol_…"]}, en fazla 50 rol. role_ids zorunludur; [] geçerli bir kümedir.
Yanıt
200 OK, üyelik ile birlikte (üye listesi öğesiyle aynı alanlar) ve ETag: "<version>".
Hatalar
| Durum | Kod | Ne zaman |
|---|---|---|
| 400 | malformed_request |
If-Match hatalı biçimlendirilmişse. |
| 400 | unknown_field |
Gövde, role_ids dışında bir alan içeriyorsa. |
| 401 | unauthenticated |
Geçerli bir oturum çerezi ya da belirteci yoksa. |
| 403 | insufficient_permissions |
Kullanıcının kuruluşta idp_members:update_roles izni yoksa. |
| 403 | role_not_assignable |
Yukarıdaki bir atama kuralı değişikliği reddediyorsa. |
| 403 | origin_not_allowed |
Origin eşleşmiyorsa. |
| 404 | not_found |
Bu kullanıcı için kuruluş, üyelik ya da rol yoksa; bilinmeyen, hatalı biçimlendirilmiş veya başka bir kaynağa ait tanımlayıcı da aynı yanıtı verir. |
| 409 | last_org_admin |
Değişiklik, kuruluşu etkin bir yöneticisiz bırakacaksa. |
| 409 | role_limit_reached |
Üye 50'den fazla role sahip olacaksa. |
| 409 | organization_disabled |
Kuruluş devre dışıysa ya da silinmeyi bekliyorsa (organization_pending_deletion). |
| 412 | precondition_failed |
If-Match, üyeliğin geçerli sürümünü belirtmiyorsa. |
| 422 | validation_failed |
role_ids eksikse, çok uzunsa ya da hatalı biçimlendirilmiş bir tanımlayıcı içeriyorsa. |
| 503 | service_unavailable |
Geçici olarak kullanılamıyorsa; Retry-After süresinden sonra yeniden deneyin. |
Örnek
curl -X PUT "https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/memberships/mem_01jbz6x8kq3m2n4p5r6s7t8v9b/roles" \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-H "Content-Type: application/json" \
-H 'If-Match: "3"' \
-b cookies.txt \
-d '{"role_ids":["rol_01jbz6x8kq3m2n4p5r6s7t8v9w"]}'
{
"id": "mem_01jbz6x8kq3m2n4p5r6s7t8v9b",
"user_id": "usr_01jbz6x8kq3m2n4p5r6s7t8v9c",
"status": "active",
"roles": [{ "role_id": "rol_01jbz6x8kq3m2n4p5r6s7t8v9w", "source": "admin_api" }],
"created_at": "2026-11-03T09:00:00Z",
"activated_at": "2026-11-03T09:00:00Z",
"expires_at": null,
"updated_at": "2026-11-03T10:00:00Z",
"version": 4
}
Kişisel veriler
Bu uç nokta kişisel veri içerir: kuruluş üyelikleri ve davetler. KeenAuth API'lerinde kişisel veriler bölümünde neyin saklandığı, ne kadar süreyle tutulduğu ve nasıl silindiği açıklanmaktadır. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.