2.6 KiB
2.6 KiB
Iteration Log: Company-Based User Roles & Multi-Agent Model
- Iterasi:
n(Next Enhancement execution) - Tanggal: 2026-07-28 13:05
Yang Diminta
- Implementasikan pemisahan akun operasional/teknikal dari akun pengguna/perusahaan.
- Buat 3 role pengguna/perusahaan (
COMPANY_ADMIN,COMPANY_OPERATOR,COMPANY_VIEWER). - Buat tab halaman baru "User Account" yang menampilkan daftar user dikelompokkan per perusahaan (grouped card layout).
- Batasi kuota maksimum 5 akun untuk setiap perusahaan.
- Implementasikan pemilihan multi-agent (checklist / checkbox list) saat mendaftarkan operator/viewer.
Langkah yang Diambil
- Backend - Model Update: Menambahkan
company_namedanagent_uuids(array of strings) ke modelUser.jsserta enum role yang baru. - Backend - getBaseFilter Update: Mengubah helper kueri agar menyaring traffic data menggunakan
$in: agent_uuidsjika role adalah company user. - Backend - Route Authorization: Mengupdate
users.js,viewAs.js, dandeviceLabeling.jsagar mendukung hak akses delegasi user tingkat 1, 2, dan 3. - Backend - 5-Account Limit: Menambahkan pengecekan
countDocumentsdi route pendaftaran user agar menolak pendaftaran jika perusahaan sudah memiliki 5 akun aktif. - Frontend - User Accounts Page: Membuat halaman baru
/user-accountsyang merender Card per perusahaan, menampilkan status kuota (X/5), dan memetakan tombol tambah user langsung ke konteks perusahaan tersebut. - Frontend - Multi-Select Checklist: Mengupdate
ExternalAccountModal.tsxagar memuat checklist checkbox untuk agen ketika role yang dipilih bertipe company operator/admin. - Frontend - Sidebar Navigation: Memperbarui link dan visibilitas menu sidebar berdasarkan hak akses role baru.
- TDD Verification: Menulis test script
test_base_filter.jsuntuk menguji isolasi database query. Unit test berhasil dilewati dengan sukses (100% Passed). - Build & Deploy: Menjalankan compiler check (tsc: 0 errors), melakukan full production build Next.js, dan mendeploy file ke server production
demoplace.my.idvia SFTP.
Hasil & Status Codebase saat Ini
- Halaman
/user-accountssudah live dihttps://demoplace.my.id. - Semua backend validation (kuota 5 akun & delegasi subset agent) dan frontend component (checklist & pre-selected modal) berfungsi penuh.
- Verifikasi build integrity aman. PM2 reload sukses di server.
Pertimbangan untuk Iterasi Berikutnya
- Saat ini list agent di checklist UI modal memuat UUID secara langsung. Ke depan, kita bisa me-resolve UUID tersebut menjadi label agent yang lebih user-friendly (misal: "IFG LT.18") di client.