
# Rol izinlerini ayarla

`PUT /fapi/v1/organizations/{org_id}/roles/{role_id}/permissions` · ortamın oturum açma ana bilgisayarından çağrılır

Bir kuruluş rolünün izin kümesini değiştirir. Yalnızca ortamın kuruluş rolleri için izin verdiği izinler kullanılabilir ve yöneticiler yalnızca kendilerinde bulunan izinleri verebilir. İzinler ve API'ler burada oluşturulamaz. Kimliği doğrulanmış kullanıcının `__Host-idp_session` çerezi gereklidir; çerez yoksa, süresi dolmuşsa veya iptal edilmişse `401 unauthenticated` döndürülür. Farklı bir kökendeki birinci taraf bir uygulama bunun yerine ön yüz API erişim belirtecini gönderebilir (`Authorization: DPoP <token>` ile bir DPoP kanıtı; bkz. [Ön yüz API erişim belirteci](/docs/api/fapi/front-api-token)). Kullanıcı, kuruluşun aktif bir üyesi olmalı ve `idp_roles:manage` iznine sahip olmalıdır. Üye olmayan bir kullanıcı `404 not_found` alır; böylece kuruluşun varlığı açığa çıkmaz. İzni olmayan bir üye `403 insufficient_permissions` alır. Kuruluş rolleri ortam için etkinleştirilmiş ve planına dahil edilmiş olmalıdır.

## İstek

Üstbilgiler:

| Üstbilgi | Zorunlu | Açıklama |
| --- | --- | --- |
| `Idp-Client` | evet | SDK tanımlayıcısı. |
| `Origin` | evet | Tam olarak `https://<oturum açma ana bilgisayarı>` olmalıdır. |
| `Content-Type` | gövdeyle birlikte | `application/json`. |
| `If-Match` | hayır | Rolün son okunan `"<version>"` değeri; rol o zamandan beri değiştiyse `412 precondition_failed` döndürülür ve hiçbir şey değişmez. |

`org_id`: kuruluş tanımlayıcısı (`org_…`). `role_id`: rol tanımlayıcısı (`rol_…`).

Gövde:

| Alan | Zorunlu | Açıklama |
| --- | --- | --- |
| `permission_ids` | evet | Tam küme, en fazla 100 izin tanımlayıcısı (`perm_…`); `[]` tüm izinleri kaldırır. |

## Yanıt

Yeni bir `ETag` ile `200 OK`; gövde rolün kendisidir (bkz. [Kuruluş rolünü al](./get)).

## Hatalar

| Durum | Kod | Ne zaman |
| --- | --- | --- |
| 401 | `unauthenticated` | Geçerli oturum çerezi yok. |
| 403 | `origin_not_allowed` | `Origin` eksik veya yanlış. |
| 403 | `insufficient_permissions` | Kullanıcının kuruluşta `idp_roles:manage` izni yok. |
| 403 | `plan_feature_unavailable` | Ortamın planı kuruluş rollerini içermiyor (`feature`, `required_plan`). |
| 403 | `org_custom_roles_disabled` | Kuruluş rolleri ortam için kapalı. |
| 403 | `role_not_assignable` | Rol veya yeni küme, kullanıcının sahip olmadığı bir izni veriyor ya da kullanıcının kendi üyeliği bu rolü taşıyor. |
| 404 | `not_found` | Bu kullanıcı için böyle bir kuruluş veya kuruluş rolü yok; ortam rolü, bilinmeyen, hatalı biçimli veya başkasına ait bir tanımlayıcı aynı yanıtı verir. |
| 409 | `organization_pending_deletion` | Kuruluş silinmek üzere planlanmış. |
| 412 | `precondition_failed` | `If-Match` geçerli sürümü göstermiyor veya istek işlenirken rol değişti. |
| 422 | `permission_not_allowed` | Bir izin kuruluş rolleri için kullanılamaz. |
| 422 | `permission_reserved` | Bir izin platform için ayrılmış. |
| 422 | `validation_failed` | Liste geçersiz veya çok uzun. |
| 503 | `service_unavailable` | Geçici olarak kullanılamıyor; `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

```bash
curl -X PUT https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/roles/rol_01jbz6x8kq3m2n4p5r6s7t8v9w/permissions \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"permission_ids":["perm_01jbz6x8kq3m2n4p5r6s7t8v9b"]}'
```
