PHPMaker sangat keren menangani Permissions untuk memberikan akses kepada Pengguna Akhir pada table-table tertentu, sesuai dengan fungsi-fungsi CRUD yang tersedia di setiap table yang bertalian.
Permissions akan diberikan berdasarkan User Level tertentu. Selanjutnya, Pengguna Akhir akan direlasikan kepada User Level yang bertalian. Dengan cara ini, kita tidak perlu mendefinisikan Permissions untuk setiap Pengguna Akhir, tapi cukup lewat User Level saja!
Jika di dalam project PHPMaker kita memiliki banyak table, maka akan semakin banyak pula fungsi-fungsi CRUD yang harus diatur untuk setiap User Level yang tersedia tadi. Tinggal kalikan saja, ada berapa banyak Permissions dan table yang harus diatur Permissions-nya lewat matriks RBAC (Role Based Access Control).
Bayangkan jika untuk setiap User Level yang baru saja dibuat, maka kita harus mendefinisikan ulang Permissions satu per satu untuk setiap table-table yang banyak tadi. Rasanya tentu sangat membosankan dan memakan waktu yang cukup lama untuk pekerjaan yang satu ini.
Harus ada cara yang lebih cepat, sekaligus efektif dan efisien untuk mendefinisikan Permissions pada User Level yang baru. Satu-satunya cara adalah dengan menyediakan fitur Copy Permissions.
Fitur Copy Permissions akan menyalin semua Permissions dari satu User Level ke User Level lain, khususnya yang memiliki Permissions yang mirip-mirip. Selanjutnya, di User Level tujuan, kita bisa cukup mengatur ulang hanya sedikit Permissions saja.
Cara ini tentu lebih efektif dan efisien, bukan? Bukan! Karena cukup dengan sekali klik saja, maka semua Permissions tadi akan disalin. Tidak perlu lagi mendefinisikan ulang setiap Permissions dari awal untuk setiap User Level yang baru saja dibuat.
Setelah berhasil menyalin Permissions tadi, maka selanjutnya cukup hanya menyesuaikan sedikit Permissions saja di User Level tujuan.
Untuk melihat demonya, silahkan klik link ini: https://demo.phpmakerprojects.com/copy_permissions/
Charly mengatakan
Mat Siang Pak Masino.
Mohon bantuan Pak Masino di bagian Hak Akses Level Pengguna, dimana ada beberapa tabel jika di set permissionanya muncul pesan seperti ini:
C:\xampp\htdocs\dpu-2024-03\administrator\vendor\doctrine\dbal\src\Driver\API\MySQL\ExceptionConverter.php(62): An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘2-{9A03436F-32D6-460E-80C5-DC9F376CA111}v_006_menu_01_permint…’ for key ‘PRIMARY’
Saya sudah coba mengosongkan table userlvelpermission dan mengenerate kembali, tapi tetap saja ada beberapa tabel yang tidak bisa di setting permissionnya. Mohon pencerahaanya Pak Masino. Makasih
Masino Sinaga mengatakan
Duplicate entry berarti ada data yang duplikat dan tidak bisa di-insert ke tabel.
Kemungkinan ada project lain yang menggunakan ID Project yang sama, dan mengarah ke tabel/database tersebut, sehingga ketika diset permission dari aplikasi web, akan menyebabkan data duplikat, dan ditolak oleh sistem databasenya.
Charly mengatakan
Makasih banyak Pak Masino atas pencerahaanya, saya coba untuk memperbaikinya sesuai arahan Pak Masino.
Masino Sinaga mengatakan
Sama-sama.
Charly mengatakan
Pak Masino, sudah berhasil. selain ada ID Project yang sama yang saya buat, ternyata panjang field tablename pada table userlevelpermissions secara default panjangnya character nya hanya 80, setelah saya sesuaikan sesuai dengan kebutuhan, kebetulan view yang saya buat ternyata namaya lumayan panjang, setelah panjang character saya ganti sesuai kebutuhan sudah berhasil. Makasih Pak Masino
Masino Sinaga mengatakan
Sama-sama.