- 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>
### 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`.