
# Kuruluş rolünü güncelleme

`PATCH /fapi/v1/organizations/{org_id}/roles/{role_id}` · ortamın giriş yap ana makinesinden çağrılır

Bir kuruluş rolünün adını veya açıklamasını değiştirir (JSON birleştirme yaması, RFC 7396). Ortam rolleri burada değiştirilemez. Kimliği doğrulanmış kullanıcının `__Host-idp_session` çerezi gerekir; çerez eksikse, süresi dolmuşsa veya iptal edilmişse `401 unauthenticated` döner. Farklı bir kaynaktaki birinci taraf bir uygulama bunun yerine Front API erişim belirtecini gönderebilir (DPoP kanıtıyla birlikte `Authorization: DPoP <token>`; bkz. [Front 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; izni olmayan bir üye `403 insufficient_permissions` alır. Kuruluş rollerinin ortam için etkinleştirilmiş ve planına dahil edilmiş olması gerekir.

## İstek

Başlıklar:

| Başlık | Zorunlu | Açıklama |
| --- | --- | --- |
| `Idp-Client` | evet | SDK tanımlayıcısı. |
| `Origin` | evet | Tam olarak `https://<sign-in host>` olmalıdır. |
| `Content-Type` | gövdeyle birlikte | `application/json` veya `application/merge-patch+json`. |
| `If-Match` | hayır | Rolün son okunduğu `"<version>"` değeri; rol o zamandan beri değiştiyse `412 precondition_failed` döner 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 (en az bir alan):

| Alan | Zorunlu | Açıklama |
| --- | --- | --- |
| `name` | hayır | Yeni görünen ad. |
| `description` | hayır | Yeni açıklama. |

## Yanıt

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

## Hatalar

| Durum | Kod | Ne zaman |
| --- | --- | --- |
| 401 | `unauthenticated` | Geçerli bir 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 kapatılmış. |
| 403 | `role_not_assignable` | Rol, kullanıcının sahip olmadığı bir izni veriyor veya kullanıcının kendi üyeliği bu izni taşıyor. |
| 404 | `not_found` | Bu kullanıcı için böyle bir kuruluş veya kuruluş rolü yok; bir ortam rolü, bilinmeyen, hatalı biçimli veya başka 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ü belirtmiyor veya istek işlenirken rol değişti. |
| 422 | `validation_failed` | Bir alan geçersiz ya da yama boş (`empty_patch`). |
| 503 | `service_unavailable` | Geçici olarak kullanılamıyor; `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

```bash
curl -X PATCH https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/roles/rol_01jbz6x8kq3m2n4p5r6s7t8v9w \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "1"' \
  -b cookies.txt \
  -d '{"name":"Auditors"}'
```
