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ı:

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