Definire il controllo degli accessi
Possiamo gestire chi può accedere a ogni campo e direttiva dello schema tramite liste di controllo degli accessi.
Gato GraphQL include le seguenti regole di controllo degli accessi:
- Disabilitare l'accesso
- Concedere l'accesso se l'utente è connesso o disconnesso
- Concedere l'accesso se l'utente ha un determinato ruolo
- Concedere l'accesso se l'utente ha una determinata capacità
- Concedere l'accesso se il visitatore proviene da un indirizzo IP autorizzato
Ogni volta che la query richiesta (eseguita tramite un endpoint personalizzato o come query persistita) contiene uno o più campi o direttive aggiunti alla lista di controllo degli accessi, le regole corrispondenti vengono valutate. Se una regola non è soddisfatta, l'accesso a quel campo o a quella direttiva viene negato.
La configurazione viene creata tramite una lista di controllo degli accessi (ACL) e fornita agli endpoint personalizzati e alle query persistite tramite la configurazione dello schema.
Accesso a tutte le liste di controllo degli accessi
Facendo clic su "Access Control Lists" nel menu del plugin, viene visualizzato l'elenco di tutte le liste di controllo degli accessi create:

Creazione di una nuova lista di controllo degli accessi
Fare clic sul pulsante "Add New Access Control List" per aprire l'editor WordPress:

Assegnare un titolo alla lista di controllo degli accessi, aggiungere voci con operazioni, campi e direttive, configurare le regole applicabili e definirne la visibilità (pubblica o privata):

Quando è pronta, fare clic sul pulsante Pubblica. La nuova lista di controllo degli accessi diventa quindi disponibile per la configurazione dello schema.
Voci di controllo degli accessi
Ogni lista di controllo degli accessi contiene una o più voci, ciascuna con i seguenti elementi:
- Le operazioni a cui concedere o negare l'accesso
- I campi a cui concedere o negare l'accesso
- Le direttive a cui concedere o negare l'accesso
- L'elenco delle regole da validare

Selezione di campi dalle interfacce
Oltre ai campi dei tipi, è possibile selezionare anche campi dalle interfacce. In questo caso, la validazione del controllo degli accessi viene eseguita su tutti i tipi che implementano l'interfaccia.

Modalità pubblica/privata
Se il modulo "Public/Private Schema" è abilitato, quando l'accesso a un campo o a una direttiva viene negato, l'API può comportarsi in 2 modi:
- Modalità pubblica: fornisce un messaggio di errore all'utente indicando il motivo del diniego di accesso
- Modalità privata: il messaggio di errore indica che il campo o la direttiva non esiste
Se questo modulo non è abilitato, il comportamento predefinito è pubblico.
Modalità pubblica/privata granulare
Se l'opzione "Enable granular control?" del modulo "Public/Private Schema" è attivata, la voce presenta un elemento aggiuntivo:
- Schema Pubblico/Privato: comportamento quando l'accesso viene negato

Descrizione della lista di controllo degli accessi
Utilizzare il campo "Estratto", nel pannello delle impostazioni del documento, per assegnare una descrizione alla lista di controllo degli accessi.
Ulteriori informazioni sono disponibili nella guida Aggiungere una descrizione all'API.
Utilizzo della lista di controllo degli accessi
Dopo aver creato l'ACL, è possibile fare in modo che l'Endpoint Personalizzato o la Query Persistita la utilizzi modificando la Configurazione dello Schema corrispondente, e selezionando l'ACL dall'elenco sotto il blocco "Access Control Lists".

Se la configurazione non viene personalizzata, verranno utilizzate le liste di controllo degli accessi predefinite definite nella pagina delle Impostazioni, nella scheda "Access Control":
