ErtisAuth

Roller

Rolleri ve yetkilerini yönetin.

Rol, kullanıcıların ve uygulamaların paylaştığı, adı olan bir yetki kümesidir. Her kullanıcının ve her uygulamanın, slug'ıyla başvurulan tam olarak bir rolü vardır. Rollerin kullanıcıya özel yetkilerle birlikte nasıl değerlendirildiği Yetkilendirme sayfasında anlatılır.

Rol nesnesi#

json
{
	"_id": "66f1c0d2a4b5c6d7e8f90131",
	"name": "Support Agent",
	"slug": "support",
	"description": "Can read and edit customers, but not delete them",
	"permissions": [
		"users.read",
		"users.update",
		"user-types.read",
		"roles.read"
	],
	"forbidden": [
		"users.delete"
	],
	"membership_id": "66f1c0d2a4b5c6d7e8f90123",
	"sys": { "created_at": "2026-01-01T12:00:00Z", "created_by": "admin" }
}
AlanZorunluAçıklama
nameevetGörünen ad.
slughayırMembership içinde benzersiz; verilmezse addan türetilir. Kullanıcılar ve uygulamalar role slug'ıyla başvurur.
descriptionhayır
permissionshayırRolün izin verdikleri, yetki ifadeleri olarak.
forbiddenhayırRolün yasakladıkları. Yasak bir girdi, aynı rolün yetkisine karşı her zaman kazanır.

Aynı ifade iki listede birden bulunamaz.

admin rolü#

Kurulum, ErtisAuth API'sinin her kaynağı üzerinde create, read, update ve delete yetkisine sahip admin rolünü oluşturur. Slug'ı ayrılmıştır: bu slug'la başka rol oluşturulamaz ve rol silinemez.

Endpoint'ler#

Tüm route'lar /memberships/{membershipId} altındadır.

MetotRouteAçıklamaYetki
GET/roles/{id}Rol getirme (id ya da slug)roles.read.{id}
GET/rolesRolleri listelemeroles.read
POST/roles/_queryRolleri sorgulamaroles.read
GET/roles/search?keyword=Rol aramaroles.read
POST/rolesRol oluşturmaroles.create
PUT/roles/{id}Rol güncellemeroles.update.{id}
DELETE/roles/{id}Rol silmeroles.delete.{id}
DELETE/rolesBirden fazla rol silmeroles.delete
GET/roles/{id}/check-permission?permission=Bir rolün yetkisini kontrol etmeroles.read
GET/roles/check-permission?permission=Çağıranın yetkisini kontrol etmegeçerli herhangi bir token

Rol oluşturma#

shell
curl -X POST https://auth.example.com/memberships/<membership_id>/roles \
	-H 'Authorization: Bearer <access_token>' \
	-H 'Content-Type: application/json' \
	-d '{
		"name": "Support Agent",
		"slug": "support",
		"permissions": [ "users.read", "users.update", "roles.read" ],
		"forbidden": [ "users.delete" ]
	}'

Yanıt 201 Created: rol.

HataNe zaman
400 ModelValidationErrorAd eksik, slug geçersiz ya da aynı ifade iki listede birden var
400 InvalidRbacBir ifade geçerli değil
404 MembershipNotFoundMembership yok
409 RoleAlreadyExistsSlug kullanımda
409 ReservedRoleSlug admin

Rol güncelleme#

http
PUT /memberships/{membershipId}/roles/{id}

Gövde, oluşturma isteğiyle aynı alanlara sahiptir ve rolün permissions ve forbidden listelerini değiştirir. Değişiklik, token'ları yeniden verilmeden, rolü taşıyan her kullanıcıya ve uygulamaya uygulanır. Birden fazla ErtisAuth instance'ı çalıştırıyorsanız her instance rolleri en fazla 5 dakika önbellekte tuttuğundan, değişikliğin hepsine ulaşması bu kadar sürebilir (bkz. Operasyon).

Hiçbir değişiklik içermeyen bir güncelleme 409 IdenticalDocumentError döner.

Rol silme#

http
DELETE /memberships/{membershipId}/roles/{id}

Yanıt 204 No Content. admin rolü silinemez (409 SystemRolesCannotBeDeleted). Birden fazla rol toplu silme ile tek seferde silinebilir.

Not: bir rolü silmeden önce hiçbir kullanıcının ya da uygulamanın onu hâlâ kullanmadığından emin olun: aksi halde istekleri 403 AccessDenied ("role is not found") ile reddedilir.

Yetki kontrolü#

Bkz. Yetkilendirme.

Olaylar#

RoleCreated, RoleUpdated ve RoleDeleted. Bkz. Olaylar.

Dokümantasyonda bir hata mı buldunuz? Issue açın