Definiowanie kontroli dostępu
Możemy zarządzać tym, kto ma dostęp do każdego pola i dyrektywy w schemacie, za pomocą list kontroli dostępu.
Gato GraphQL zawiera następujące reguły kontroli dostępu:
- Wyłącz dostęp
- Przyznaj dostęp, jeśli użytkownik jest zalogowany lub wylogowany
- Przyznaj dostęp, jeśli użytkownik ma określoną rolę
- Przyznaj dostęp, jeśli użytkownik ma określone uprawnienie
- Przyznaj dostęp, jeśli odwiedzający pochodzi z dozwolonego adresu IP
Gdy żądane query (wykonywane przez niestandardowy endpoint lub jako utrwalone query) zawiera co najmniej jedno pole lub dyrektywę dodaną do listy kontroli dostępu, odpowiednie reguły są oceniane. Jeśli którakolwiek reguła nie jest spełniona, dostęp do danego pola lub dyrektywy jest odmawiany.
Konfiguracja jest tworzona za pomocą listy kontroli dostępu (ACL) i dostarczana do niestandardowych endpointów oraz utrwalonych queries poprzez konfigurację schematu.
Przeglądanie wszystkich list kontroli dostępu
Po kliknięciu "Access Control Lists" w menu wtyczki wyświetlana jest lista wszystkich utworzonych list kontroli dostępu:

Tworzenie nowej listy kontroli dostępu
Kliknij przycisk "Add New Access Control List", aby otworzyć edytor WordPress:

Nadaj liście kontroli dostępu tytuł, dodaj wpisy z operacjami, polami i dyrektywami, skonfiguruj obowiązujące reguły i określ widoczność (publiczna lub prywatna):

Gdy będzie gotowa, kliknij przycisk Opublikuj. Nowa lista kontroli dostępu będzie wówczas dostępna w konfiguracji schematu.
Wpisy kontroli dostępu
Każda lista kontroli dostępu zawiera jeden lub więcej wpisów, z których każdy posiada następujące elementy:
- Operacje, do których dostęp ma być przyznany lub odmówiony
- Pola, do których dostęp ma być przyznany lub odmówiony
- Dyrektywy, do których dostęp ma być przyznany lub odmówiony
- Lista reguł do zweryfikowania

Wybieranie pól z interfejsów
Oprócz pól typów możemy również wybierać pola z interfejsów. W takim przypadku walidacja kontroli dostępu jest przeprowadzana na wszystkich typach implementujących dany interfejs.

Tryb publiczny/prywatny
Jeśli moduł "Public/Private Schema" jest włączony, gdy dostęp do jakiegoś pola lub dyrektywy jest odmówiony, API może zachować się na 2 sposoby:
- Tryb publiczny: wyświetla użytkownikowi komunikat o błędzie wskazujący, dlaczego dostęp jest odmówiony
- Tryb prywatny: komunikat o błędzie informuje, że dane pole lub dyrektywa nie istnieje
Jeśli ten moduł nie jest włączony, domyślnym zachowaniem jest tryb publiczny.
Szczegółowy tryb publiczny/prywatny
Jeśli opcja "Enable granular control?" modułu "Public/Private Schema" jest włączona, wpis posiada dodatkowy element:
- Schemat publiczny/prywatny: zachowanie w przypadku odmowy dostępu

Opisywanie listy kontroli dostępu
Użyj pola "Excerpt" w panelu ustawień dokumentu, aby dodać opis do listy kontroli dostępu.
Więcej informacji znajdziesz w przewodniku Dodawanie opisu do API.
Korzystanie z listy kontroli dostępu
Po utworzeniu ACL możemy sprawić, by Niestandardowy Endpoint lub Utrwalone Query z niej korzystało, edytując odpowiednią Konfigurację Schematu i wybierając ACL z listy w bloku "Access Control Lists".

Jeśli konfiguracja nie jest dostosowana, zostaną użyte domyślne listy kontroli dostępu zdefiniowane na stronie Ustawień, w zakładce "Access Control":
