PHPMaker memiliki kemampuan untuk menetapkan umur (dalam satuan hari) dari password atau kata sandi di Aplikasi Web yang dibangkitkan olehnya. Pengaturan ini dapat Anda aktifkan dengan sangat mudah melalui menu tab Security -> Advanced -> User Login Options -> Password expiry time (days). Pastikan juga Anda sudah mengaktifkan pengaturan Enable password expiry dari lokasi yang sama tadi di project PHPMaker Anda.
Ketika kata sandi sudah habis masa berlakunya (expired), maka sistem akan memaksa Pengguna mengganti kata sandinya. Jika Pengguna berhasil login ke Aplikasi Web, maka sistem akan langsung menampilkan form Ganti Kata Sandi, dan memaksa Pengguna untuk mengganti kata sandinya saat itu juga. Jika kata sandi tidak diganti, maka Pengguna tidak dapat melanjutkan pekerjaannya di Aplikasi Web tersebut.
Sayangnya, masih banyak Pengguna yang tidak paham dengan aturan ini. Mereka sering kali bingung, mengapa tiba-tiba disuruh mengganti kata sandi (meskipun ada pesan dari sistem yang menyatakan bahwa kata sandi sudah habis masa berlakunya). Parahnya, jika Pengguna lupa kata sandi yang lama, maka mereka akan semakin panik lagi, dan tidak tahu apa yang harus mereka lakukan.
Aplikasi Web yang baik memang harus menampilkan pesan yang berisi penjelasan sekaligus instruksi apa yang harus dilakukan ketika sistem menyatakan bahwa kata sandi sudah expired. Anda sebagai Web Developer sebaiknya memberikan keterangan/penjelasan tambahan seperlunya, sehingga Pengguna diharapkan tidak bingung atau panik jika menghadapi kondisi tersebut.
PHPMaker memungkinkan Anda sebagai Web Developer dapat menambahkan pesan tambahan ketika kata sandi expired di Aplikasi Web. PHPMaker telah menyediakan sebuah server event yang bernama User_PasswordExpired yang dapat Anda akses dari lokasi: Server Events -> Global -> All Pages dari dalam project PHPMaker Anda. Server event ini dijalankan setelah Pengguna berhasil login dan ketika kata sandi sudah expired.
Perlu diingat bahwa server event ini merupakan member dari Class Security, sehingga Anda dapat menggunakan member lainnya di class tersebut (jika diperlukan).
Berikut ini contoh kode untuk menampilkan pesan yang disertai informasi Nama Lengkap Pengguna yang diambil dari field Nama_Lengkap:
function User_PasswordExpired(&$rs) { CurrentPage()->setWarningMessage("Halo ".$rs["Nama_Lengkap"].", kata sandi Anda sudah <em>expired</em>. Silahkan ganti kata sandi Anda melalui form berikut. <br><br>Jika Anda lupa dengan kata sandi yang lama, silahkan reset dengan mengklik link <strong>Lupa Kata Sandi</strong> di bawah form Login."); }
Seperti yang kita lihat pada kode tersebut, server event ini memiliki satu parameter berupa recordset yang merupakan array dan berisi data Pengguna yang sudah berhasil login. Anda dapat menyertakan informasi yang dimiliki Pengguna dari tabel users yang digunakan untuk memvalidasi data Pengguna saat Login. Cukup dengan menggunakan $rs[“Nama_Lengkap”] untuk mengambil nilai di field Nama_Lengkap pada tabel users.
Kita juga menggunakan Global Function CurrentPage() untuk mengakses method setWarningMessage milik object Page pada halaman Login. Kemudian, kita menampilkan pesan dengan tipe Warning atau Peringatan dengan menggunakan method setWarningMessage yang memiliki satu parameter berupa String. Pesan tersebut berisi peringatan kepada Pengguna bahwa kata sandinya sudah expired, disertai instruksi apa saja yang harus mereka lakukan.
Dengan menggunakan server event User_PasswordExpired, maka Anda sebagai Web Developer dapat menambahkan pesan yang Anda tentukan sendiri dari dalam project PHPMaker Anda dengan mudah dan cepat. Artinya, Anda tidak perlu mengkostumais file yang sudah di-generate oleh PHPMaker. Anda juga tidak perlu mengubah file Template PHPMaker.
Betapa nikmatnya bekerja dengan PHPMaker. 🙂
bebek_epic mengatakan
Saya telah reset password saya tapi telah xpired
Masino Sinaga mengatakan
Reset lagi, kalau sudah berhasil, seharusnya tidak expired lagi.