### 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`.
18 lines
615 B
PHP
18 lines
615 B
PHP
<?php
|
|
use Modules\Authentication\Classes\Uim;
|
|
|
|
if (!function_exists('verify_user')) {
|
|
function verify_user($id, $passwd, $SERVER_ADDR, $IPUserManager, $portUserManager, $appId)
|
|
{
|
|
try {
|
|
$verifier = new Uim($IPUserManager, $portUserManager, $appId, $SERVER_ADDR);
|
|
return $verifier->verify($id, $passwd);
|
|
} catch (Exception $e) {
|
|
// Handle error more gracefully than the original die()
|
|
error_log("User verification error: " . $e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|