3.1 KiB
3.1 KiB
Iteration Log — 2026-07-28 18:21 — Bug Fix (Ad-hoc)
Permintaan
User melaporkan 2 bug di halaman /user-accounts:
- Gambar 2: Akun
company_admintidak bisa melihat agent/perusahaannya sendiri (tampil "No Company Accounts") - Gambar 3: Form "Create External Account" menampilkan role teknikal/operasional internal (Executive, Tenant Admin, SOC Analyst, Engineer) alih-alih role user/pengguna perusahaan
Bug 1 — COMPANY_ADMIN Tidak Bisa Melihat Company Card Sendiri
Root Cause
backend/routes/auth/users.jsbaris 34:query.username = { $ne: req.adminUser.username }(self-exclude) berlaku untuk semua role termasukCOMPANY_ADMIN- Saat
COMPANY_ADMINlogin dan tidak ada user lain di perusahaannya → hasil query kosong page.tsxbaris 64-79:companiesMapdibentuk dari hasil query backend → kosong →companies = []→ tampil "No Company Accounts"
Fix
backend/routes/auth/users.js: UntukCOMPANY_ADMIN, query di-return lebih awal tanpa$ne(self-exclude). COMPANY_ADMIN kini bisa melihat dirinya sendiri dalam daftar company users.src/app/(dashboard)/user-accounts/page.tsx: Tambah statecurrentUsernamedari/api/auth/me, diteruskan kegetColumnssrc/app/(dashboard)/user-accounts/columns.tsx: Tambah propcurrentUsername. Baris milik diri sendiri ditampilkan sebagai "👤 (You)" dan tombol Edit di-disabled → proteksi self-edit dari tabel
Outcome
COMPANY_ADMIN kini melihat company card-nya sendiri muncul dengan data agennya. Self-edit dilindungi di level UI (tombol disabled + label "(You)").
Bug 2 — Dropdown Role Menampilkan Role Teknikal Internal
Root Cause
src/components/admin/RoleSelect.tsx:SUPER_ADMIN_ROLESberisiEXECUTIVE,TENANT_ADMIN,SOC_ANALYST,ENGINEER,COMPANY_ADMIN- Role-role teknikal ini tidak relevan untuk user/pengguna perusahaan yang dibuat melalui "Create External Account"
Fix
RoleSelect.tsx:SUPER_ADMIN_ROLESdiubah menjadi Company Admin, Company Operator, Company Viewer sajabackend/routes/auth/users.js:validRolesuntukSUPER_ADMINditambahkanCOMPANY_OPERATORdanCOMPANY_VIEWERagar backend menerima role baru dari dropdown
Outcome
Dropdown sekarang hanya menampilkan role yang relevan untuk user perusahaan/klien. Backend menerima semua role yang mungkin dipilih.
Langkah-langkah
- Analisis screenshot dari user
- Baca
users.js,page.tsx,columns.tsx,RoleSelect.tsx,useExternalAccountForm.ts - Identifikasi root cause kedua bug
- Fix backend
users.js(COMPANY_ADMIN self-visibility + validRoles) - Fix frontend
page.tsx(tambah currentUsername state) - Fix frontend
columns.tsx(tambah prop currentUsername, self-edit protection) - Fix frontend
RoleSelect.tsx(ubah SUPER_ADMIN_ROLES) - Build verification: 25/25 halaman berhasil, tidak ada error
Pertimbangan untuk Next Time
- Jika ke depan perlu membuat akun internal BackOne (Executive, Tenant Admin, dll), perlu form/endpoint terpisah
- Self-edit untuk COMPANY_ADMIN sebaiknya diarahkan ke halaman profil, bukan user-accounts table