Setelah di tulisan sebelumnya kita sudah mengetahui bagaimana mudahnya Anda sebagai Web Developer dapat mengubah Hak Akses untuk Table tertentu menggunakan server event TablePermissions_Loading, maka di tulisan ini kita akan membahas bagaimana mudahnya Web Developer dapat memanipulasi Aksi-Aksi yang terdapat di level Table di Aplikasi Web yang dihasilkan oleh PHPMaker.
PHPMaker sudah menyediakan sebuah server event yang bernama TablePermission_Loaded yang lokasinya berada di bawah Server Events -> Global -> All Pages pada project PHPMaker Anda. Sesuai dengan namanya, server event ini dijalankan setelah Hak Akses Pengguna untuk Table tertentu dimuat oleh Aplikasi Web. Hal ini memungkinkan bagi Anda sebagai Web Developer untuk mengganti Hak Akses terhadap Aksi (seperti menambah, mengubah, menghapus record) yang dapat dilakukan oleh Pengguna dengan menggunakan method setCanXXX yang merupakan member dari Class Security.
Penting untuk diingat juga, bahwa server event ini dijalankan hanya untuk Table yang terdapat di halaman yang sedang dimuat. Jika Anda mengganti Hak Akses yang terdapat di Table lainnya melalui server event ini, maka itu tidak akan ada efeknya bagi Table lain tersebut. Gunakanlah server UserLevel_Loaded jika Anda ingin mengganti Hak Akses di Table lainnya.
Kode berikut menunjukkan bagaimana mudahnya menambahkan Hak Akses Edit untuk Pengguna yang memiliki username nancy dan hanya untuk Table orders:
function TablePermission_Loaded() { if (CurrentUserName() == "nancy" && CurrentTable()->TableName = "orders") $this->setCanEdit(TRUE); }
Di samping menggunakan method setCanEdit, Anda juga dapat menggunakan method seperti setCanAdd, setCanDelete dan lain sebagainya yang merupakan member dari Class Security. Jika Anda ingin menambahkan Hak Akses terhadap Aksi tertentu, maka cukup berikan parameter TRUE di dalam method tadi, sebaliknya FALSE jika ingin menghapus atau membatasi Hak Akses terhadap Aksi tersebut.
Dengan menggunakan server event TablePermission_Loaded, maka Anda sebagai Web Developer dapat memanipulasi (menambahkan dan atau mengurangi) Hak Akses terhadap Aksi tertentu yang boleh dilakukan oleh Pengguna di Aplikasi Web yang dihasilkan oleh PHPMaker. Tidak perlu memodifikasi file script yang sudah dihasilkan oleh PHPMaker, dan tidak perlu juga memodifikasi file Template PHPMaker.
Satu lagi dari sekian banyaknya fakta yang semakin membuktikan bahwa betapa mudah dan cepatnya PHPMaker digunakan untuk membangun Aplikasi Web. 🙂
Zaini mengatakan
How about If we want to set permission only on field of the table.
I mean when data on master table (field),
Other user (department) cannot add/edit/delete go to the detail table but when the field are belong to their department, they can add/edit/delete the whole data of detail table.
Masino Sinaga mengatakan
It seems your question is similar to the following topic in PHPMaker Discussion Forum, and it has been aswered by me, so please check this out: Allowed or Disallowed in Master/Detail.
Masino Sinaga mengatakan
In addition, this following article seems related to your question: Mudahnya Membatasi Akses ke Record Tertentu di Aplikasi Web dari PHPMaker.