Meningkatkan user experience dengan memberikan pesan error yang lebih spesifik pada proses login:
- Menambahkan logika untuk membedakan error "password salah" dan "user tidak ditemukan"
- Menggunakan FILTER_VALIDATE_EMAIL untuk mendeteksi apakah input adalah email atau NIK
- Mengganti pesan error generik "Email/NIK atau password tidak sesuai" menjadi pesan yang lebih spesifik
- Menambahkan validasi untuk mengecek keberadaan user sebelum memberikan pesan error
- Memperbaiki struktur pesan error untuk menampilkan error pada field yang tepat (login atau password)
- Meningkatkan keamanan dengan tetap mempertahankan rate limiting pada percobaan login yang gagal
- Memastikan backward compatibility dengan sistem error handling yang sudah ada
Perbaikan Penanganan Branch Null:
- Menambahkan pengecekan kondisional sebelum menyimpan branch_id ke session
- Mencegah error ketika branch tidak ditemukan berdasarkan lastFourDigits
- Implementasi menggunakan if statement untuk memastikan $branch ada sebelum mengakses properti id
Introduces custom validation messages for login and password fields to enhance clarity for users. Updates error feedback text to provide more specific guidance when authentication fails. Fixes formatting issue in the password error message in the view for consistency.
- Menambahkan `use Exception` pada kelas `Uim` untuk penanganan error yang lebih eksplisit.
- Menghapus penggunaan class `Request` yang tidak digunakan dalam `LoginRequest`.
- Memperbaiki logika penyesuaian role berdasarkan `KD_GROUP`, menetapkan `default` sebagai `customer_service` untuk menghindari kondisi default role tidak ditangani.
- Membuat beberapa perbaikan format dan konsistensi kelas serta elemen HTML di file blade:
- Menyesuaikan atribut HTML untuk memastikan konsistensi seperti spasi, indentasi, dan tata letak elemen.
- Memutakhirkan logo dan elemen visual untuk mendukung dinamika seperti nama aplikasi (`APP_NAME`) dan metode otentikasi (`METHOD_AUTH`) yang dapat dikonfigurasi melalui environment file.
- Mengubah elemen teks dan gaya agar lebih responsif dan ramah pengguna.
- Meningkatkan pengalaman pengguna dengan memperbaiki hierarki elemen di form login dan halaman utama.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Memperbaiki proses login dengan menggunakan filter untuk email atau NIK sebagai parameter login.
- Menggunakan `updateOrCreate` untuk membuat atau memperbarui data user berdasarkan parameter login.
- Menambahkan logika untuk mendapatkan cabang berdasarkan 4 digit terakhir kode cabang (`KD_CABANG`) dan mengaitkannya dalam sesi serta data pengguna.
- Menerapkan penyesuaian role pengguna menggunakan kode grup pengguna (`KD_GROUP`) dengan logika `match`.
- Mengubah logika role menjadi lebih dinamis, memastikan pengguna mendapatkan role yang sesuai atau role default (`user`).
- Memastikan proses `session regenerate` terjadi setelah login.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
### Perubahan Utama
- Tambah integrasi dengan sistem UIM untuk otentikasi pengguna.
- Update logika otentikasi berdasarkan metode yang ditentukan (`METHOD_AUTH`).
- Penanganan otomatis terhadap pengguna baru dengan pembuatan akun dan penentuan role.
### Detail Perubahan
1. **Integrasi Sistem UIM**:
- Tambah metode `userIdManagemeent` untuk menangani otentikasi pengguna melalui UIM.
- Implementasikan fungsi `verify_user` di helper baru (`uim.php`) untuk berkomunikasi dengan server UIM.
- Tambahkan class baru `Uim` untuk menangani verifikasi pengguna melalui koneksi TCP.
- Dekode respons dari UIM untuk memproses data pengguna.
2. **Penyesuaian Logika Otentikasi**:
- Jika `METHOD_AUTH` diset ke `uim`, sistem akan dialihkan ke otentikasi melalui UIM.
- Tambahkan logika fallback untuk otentikasi standar menggunakan Laravel jika UIM tidak digunakan.
3. **Pembuatan Pengguna Baru**:
- Buat pengguna dalam database secara otomatis jika belum terdaftar menggunakan informasi dari UIM.
- Validasi kode cabang berdasarkan data UIM untuk menentukan cabang yang relevan.
- Penetapan role pengguna sesuai dengan kode grup yang diterima dari UIM.
4. **Manajemen Cabang**:
- Cari cabang terkait berdasarkan 4 digit terakhir kode cabang (`KD_CABANG`) dari data UIM.
- Simpan ID cabang di session untuk pengguna yang berhasil otentikasi.
5. **Penanganan Validasi dan Error**:
- Tambahkan mekanisme penanganan rate limit jika otentikasi gagal.
- Beri pesan error yang lebih informatif saat otentikasi gagal melalui UIM.
6. **Update Konfigurasi Module**:
- Tambahkan path baru untuk helper `uim.php` di `module.json`.
Menambahkan dukungan login dengan email atau NIK pada form input. Menyesuaikan validasi dan proses otentikasi untuk mengenali input sebagai email atau NIK. Mengganti nama input dari 'email' menjadi 'login' serta memperbarui pesan kesalahan yang relevan.