Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
ACL (Access Control List) digunakan untuk mengontrol izin operasi sumber daya. Anda dapat memberikan izin kepada peran, atau melewati batasan peran untuk langsung mengatur izin. Sistem ACL menyediakan mekanisme manajemen izin yang fleksibel, mendukung snippet izin, middleware, penilaian kondisi, dan berbagai metode lainnya.
Objek ACL termasuk dalam sumber data (dataSource.acl). ACL sumber data utama dapat diakses dengan cepat melalui app.acl. Untuk penggunaan ACL sumber data lainnya, lihat bab Manajemen Sumber Data.
Snippet izin dapat mendaftarkan kombinasi izin yang umum digunakan sebagai unit izin yang dapat digunakan kembali. Setelah peran terikat dengan snippet, peran tersebut akan mendapatkan serangkaian izin yang sesuai, sehingga mengurangi konfigurasi yang berulang dan meningkatkan efisiensi manajemen izin.
acl.allow() digunakan untuk mengizinkan operasi tertentu melewati batasan peran. Ini cocok untuk API publik, skenario izin yang memerlukan penilaian dinamis, atau kasus di mana penilaian izin perlu didasarkan pada konteks permintaan.
Deskripsi parameter condition:
'public' : Pengguna mana pun (termasuk pengguna yang belum terautentikasi) dapat mengakses, tanpa memerlukan autentikasi apa pun.'loggedIn' : Hanya pengguna yang sudah masuk yang dapat mengakses, memerlukan identitas pengguna yang valid.(ctx) => Promise<boolean> atau (ctx) => boolean : Fungsi kustom yang secara dinamis menentukan apakah akses diizinkan berdasarkan konteks permintaan, dapat mengimplementasikan logika izin yang kompleks.acl.use() digunakan untuk mendaftarkan middleware izin kustom, memungkinkan penyisipan logika kustom ke dalam alur pemeriksaan izin. Biasanya digunakan bersama dengan ctx.permission untuk aturan izin kustom. Ini cocok untuk skenario yang memerlukan implementasi kontrol izin yang tidak konvensional, seperti formulir publik yang memerlukan verifikasi kata sandi kustom, pemeriksaan izin dinamis berdasarkan parameter permintaan, dll.
Skenario aplikasi umum:
Mengontrol izin melalui ctx.permission:
Deskripsi properti ctx.permission:
skip: true : Melewati pemeriksaan izin ACL berikutnya, dan langsung mengizinkan akses.addFixedParams dapat menambahkan batasan cakupan data (filter) tetap pada operasi sumber daya tertentu. Batasan ini akan melewati batasan peran dan diterapkan secara langsung, biasanya digunakan untuk melindungi data sistem yang krusial.
Tip:
addFixedParamsdapat digunakan untuk mencegah data sensitif terhapus atau termodifikasi secara tidak sengaja, seperti peran bawaan sistem, akun administrator, dll. Batasan ini akan berlaku secara kumulatif dengan izin peran, memastikan bahwa meskipun memiliki izin, data yang dilindungi tidak dapat dimanipulasi.
acl.can() digunakan untuk memeriksa apakah suatu peran memiliki izin untuk melakukan operasi tertentu, mengembalikan objek hasil izin atau null. Ini umumnya digunakan untuk menilai izin secara dinamis dalam logika bisnis, misalnya dalam middleware atau handler operasi untuk memutuskan apakah operasi tertentu diizinkan berdasarkan peran.
Tip: Jika beberapa peran diberikan, setiap peran akan diperiksa secara berurutan, dan akan mengembalikan hasil untuk peran pertama yang memiliki izin.
Definisi Tipe:
Jika Anda ingin operasi kustom dapat dikonfigurasi izinnya di antarmuka (misalnya, ditampilkan di halaman manajemen peran), Anda perlu mendaftarkannya menggunakan setAvailableAction. Operasi yang sudah terdaftar akan muncul di antarmuka konfigurasi izin, di mana administrator dapat mengonfigurasi izin operasi untuk peran yang berbeda.
Deskripsi parameter:
{{t("key")}}).'new-data' : Operasi yang membuat data baru (seperti impor, tambah, dll.).'existing-data' : Operasi yang memodifikasi data yang sudah ada (seperti perbarui, hapus, dll.).'new-data'.Setelah pendaftaran, operasi ini akan muncul di antarmuka konfigurasi izin, di mana administrator dapat mengonfigurasi izin operasi tersebut di halaman manajemen peran.