Hampir sebagian besar server event yang disediakan oleh PHPMaker dapat langsung digunakan tanpa harus men-generate ulang file script untuk tabel terkait. Meskipun demikian, saya tetap menyarankan agar Anda selalu melakukan generate ulang semua file script setiap kali sudah selesai melakukan perubahan di dalam file project PHPMaker Anda.
Cara yang paling aman adalah men-generate ulang semua file script dari sisi PHPMaker. Alasan yang kuat mengapa harus selalu men-generate ulang semua file script adalah karena ada sebuah server event yang disediakan oleh PHPMaker dan baru akan di-generate ke dalam file script Aplikasi Web Anda jika telah memenuhi beberapa syarat sebagai berikut:
- Table yang menggunakan server event ini sudah dilengkapi dengan field UserID untuk mengamankan data pada level Record.
- Anda sebagai Web Developer sudah menulis kode Anda di dalam server event tersebut.
Ya, hanya dua syarat tersebut.
Server event itu bernama UserID_Filtering yang lokasinya berada di bawah Server Events -> Table-Specific -> Common. Pastikan sebelumnya Anda sudah memilih salah satu Table yang Anda inginkan dari panel Database di sebelah kiri dari project PHPMaker Anda, untuk memastikan Anda menambahkan kode di server event pada Table yang tepat.
Server event ini akan digunakan jika Aplikasi Web Anda menerapkan fitur keamanan dengan menggunakan User ID. (Untuk informasi lebih lanjut, Anda sebaiknya membaca topik Security Settings pada file Help/Bantuan di aplikasi PHPMaker). Server event UserID_Filtering akan dipanggil sebelum menambahkan penyaringan UserID ke klausa WHERE milik Table.
Hal ini memungkinkan Anda sebagai Web Developer dapat memodifikasi, mengganti, atau bahkan menambahkan kriteria penyaringan sehingga Pengguna dapat mengakses lebih banyak atau lebih sedikit Record dari yang seharusnya bisa dia akses dengan menggunakan UserID semula yang dimilikinya.
Supaya semakin lebih jelas, mari simak contoh berikut. Katakanlah Anda memiliki 2 field UserID di Table yang terpilih dan juga di Table Pengguna, dan Anda ingin menyaring kedua field UserID tersebut.
function UserID_Filtering(&$filter) { ew_AddFilter($filter, "MyUserIDField2 = " . CurrentUserInfo("MyUserIDField2InUserTable")); // Asumsi: field tersebut bertipe Integer }
Dalam contoh tersebut, kita menyaring Record berdasarkan field MyUserIDField2 pada Table terpilih yang datanya sama dengan nilai pada field MyUserIDField2InUserTable di tabel Pengguna (dengan menggunakan global function CurrentUserInfo()).
Wow… wow… wow… betapa mudahnya, bukan? 🙂
Tinggalkan Balasan