Erişim Kontrolünü Tanımlama
Şemadaki her alan ve direktife kimin erişebileceğini erişim kontrol listeleri aracılığıyla yönetebiliriz.
Gato GraphQL aşağıdaki erişim kontrol kurallarıyla birlikte gelir:
- Erişimi devre dışı bırakma
- Kullanıcı oturum açmışsa veya açmamışsa erişim izni verme
- Kullanıcının belirli bir rolü varsa erişim izni verme
- Kullanıcının belirli bir yetkisi varsa erişim izni verme
- Ziyaretçi izin verilen bir IP adresinden geliyorsa erişim izni verme
İstenen query (özel bir endpoint aracılığıyla çalıştırılan veya persisted query olarak), erişim kontrol listesine eklenen alanlardan veya direktiflerden bir ya da daha fazlasını içerdiğinde, ilgili kurallar değerlendirilir. Herhangi bir kural karşılanmazsa, o alan veya direktife erişim reddedilir.
Yapılandırma, bir erişim kontrol listesi (ACL) aracılığıyla oluşturulur ve şema yapılandırması üzerinden özel endpoint'lere ve persisted queries'e iletilir.
Tüm erişim kontrol listelerine erişme
Eklentinin menüsündeki "Access Control Lists" seçeneğine tıklandığında, oluşturulan tüm erişim kontrol listelerinin listesi görüntülenir:

Yeni bir erişim kontrol listesi oluşturma
WordPress düzenleyicisini açmak için "Add New Access Control List" düğmesine tıklayın:

Erişim kontrol listesine bir başlık verin, işlemler, alanlar ve direktiflerle girişler ekleyin, bunlara uygulanacak kuralları yapılandırın ve görünürlüklerini (genel veya özel) tanımlayın:

Hazır olduğunda Yayınla düğmesine tıklayın. Ardından yeni erişim kontrol listesi, şema yapılandırması için kullanılabilir hale gelir.
Erişim Kontrol girişleri
Her Erişim Kontrol Listesi, aşağıdaki öğelere sahip bir veya daha fazla giriş içerir:
- Erişim izni verilecek veya reddedilecek işlemler
- Erişim izni verilecek veya reddedilecek alanlar
- Erişim izni verilecek veya reddedilecek direktifler
- Doğrulanacak kural listesi

Arayüzlerden alan seçme
Türlere ait alanların yanı sıra, arayüzlerden de alanlar seçebiliriz. Bu durumda, erişim kontrol doğrulaması, arayüzü uygulayan tüm türler üzerinde gerçekleştirilir.

Genel/özel mod
"Public/Private Schema" modülü etkinleştirildiğinde, bir alan veya direktife erişim reddedildiğinde API'nin 2 davranış biçimi vardır:
- Genel mod: Kullanıcıya erişimin neden reddedildiğini belirten bir hata mesajı sağlanır
- Özel mod: Hata mesajı, alanın veya direktifin mevcut olmadığını belirtir
Bu modül etkinleştirilmemişse, varsayılan davranış geneldir.
Ayrıntılı genel/özel mod
"Public/Private Schema" modülünden "Enable granular control?" seçeneği açık ise, girişte ek bir öğe bulunur:
- Genel/Özel Şema: erişim reddedildiğindeki davranış

Erişim kontrol listesini açıklama
Erişim kontrol listesine bir açıklama vermek için Belge ayarları panelindeki "Alıntı" alanını kullanın.
Daha fazla bilgi için API'ye açıklama ekleme kılavuzuna bakın.
Erişim kontrol listesini kullanma
ACL oluşturulduktan sonra, ilgili Şema Yapılandırmasını düzenleyerek ve "Access Control Lists" bloğunun altındaki listeden ACL'yi seçerek Özel Endpoint veya Persisted Query'nin bunu kullanmasını sağlayabiliriz.

Yapılandırma özelleştirilmezse, "Access Control" sekmesi altındaki Ayarlar sayfasında tanımlanan varsayılan Erişim Kontrol Listeleri kullanılır:
