Mendefinisikan kontrol akses
Kita dapat mengelola siapa yang dapat mengakses setiap field dan direktif dalam skema melalui daftar kontrol akses.
Gato GraphQL hadir dengan aturan kontrol akses berikut:
- Nonaktifkan akses
- Berikan akses jika pengguna sudah masuk atau belum masuk
- Berikan akses jika pengguna memiliki peran tertentu
- Berikan akses jika pengguna memiliki kapabilitas tertentu
- Berikan akses jika pengunjung berasal dari alamat IP yang diizinkan
Setiap kali query yang diminta (baik dieksekusi melalui custom endpoint maupun sebagai persisted query) mengandung satu atau lebih field atau direktif yang ditambahkan ke daftar kontrol akses, aturan yang sesuai akan dievaluasi. Jika ada aturan yang tidak terpenuhi, akses ke field atau direktif tersebut akan ditolak.
Konfigurasi dibuat melalui daftar kontrol akses (ACL), dan dikirimkan ke custom endpoint serta persisted query melalui konfigurasi skema.
Mengakses semua daftar kontrol akses
Mengklik "Access Control Lists" pada menu plugin akan menampilkan daftar semua daftar kontrol akses yang telah dibuat:

Membuat daftar kontrol akses baru
Klik tombol "Add New Access Control List" untuk membuka editor WordPress:

Beri judul pada daftar kontrol akses, tambahkan entri dengan operasi, field, dan direktif, konfigurasikan aturan apa yang berlaku untuk mereka, dan tentukan visibilitasnya (publik atau privat):

Setelah siap, klik tombol Publish. Kemudian, daftar kontrol akses baru tersebut akan tersedia untuk konfigurasi skema.
Entri Kontrol Akses
Setiap Daftar Kontrol Akses berisi satu atau beberapa entri, masing-masing dengan elemen-elemen berikut:
- Operasi yang akan diberikan atau ditolak aksesnya
- Field yang akan diberikan atau ditolak aksesnya
- Direktif yang akan diberikan atau ditolak aksesnya
- Daftar aturan yang akan divalidasi

Memilih field dari antarmuka
Selain field dari tipe, kita juga dapat memilih field dari antarmuka. Dalam hal ini, validasi kontrol akses dilakukan pada semua tipe yang mengimplementasikan antarmuka tersebut.

Mode publik/privat
Jika modul "Public/Private Schema" diaktifkan, ketika akses ke suatu field atau direktif ditolak, ada 2 cara perilaku API:
- Mode publik: Memberikan pesan kesalahan kepada pengguna, yang menjelaskan alasan akses ditolak
- Mode privat: Pesan kesalahan menunjukkan bahwa field atau direktif tidak ada
Jika modul ini tidak diaktifkan, perilaku default adalah publik.
Mode publik/privat granular
Jika opsi "Enable granular control?" dari modul "Public/Private Schema" dalam keadaan aktif, entri memiliki elemen tambahan:
- Skema Publik/Privat: perilaku ketika akses ditolak

Mendeskripsikan daftar kontrol akses
Gunakan field "Excerpt", dari panel pengaturan Dokumen, untuk memberikan deskripsi pada daftar kontrol akses.
Temukan informasi lebih lanjut di panduan Menambahkan deskripsi ke API.
Menggunakan daftar kontrol akses
Setelah membuat ACL, kita dapat membuat Custom Endpoint atau Persisted Query menggunakannya dengan mengedit Konfigurasi Skema yang sesuai, dan memilih ACL dari daftar di bawah blok "Access Control Lists".

Jika tidak menyesuaikan konfigurasi, Daftar Kontrol Akses default yang ditentukan di halaman Pengaturan, di bawah tab "Access Control", akan digunakan:
