feat: Plan 3 — Manajemen Pengguna (Admin User Management)

- Add AdminUserController: CRUD users, assign role, reset password,
  self-delete guard (403 on own account)
- Add admin route group under role:administrator middleware
  (GET/POST/PUT/DELETE /api/admin/users, PUT /api/admin/users/{id}/password)
- Add resources/views/admin/users.blade.php: DaisyUI table + 4 modals
  (create, edit, reset password, delete confirm), stats grid, toast
- Add Admin nav link (administrator-only) to map and data navbars
- 9 new tests covering page access, API CRUD, self-delete guard, password reset
- Mark Plan 3 complete in missing_features.md; update README page list
- Save plan3 to docs/ for reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
GuavaPopper
2026-06-03 13:51:08 +07:00
parent 2e2b42f96b
commit 8476c5d643
9 changed files with 1436 additions and 6 deletions
+6 -6
View File
@@ -2,7 +2,7 @@
> Berdasarkan perbandingan dokumen SKPL (`D1041231009_RadityaIndraPutranto_SKPL_SIG.docx`) dengan implementasi aktual project.
>
> **Terakhir diperbarui:** 2026-06-02 — setelah implementasi Form Edit & Ownership (Plan 2).
> **Terakhir diperbarui:** 2026-06-03 — setelah implementasi Manajemen Pengguna (Plan 3).
---
@@ -21,7 +21,7 @@
| # | Role | Kode SKPL | Status |
|---|---|---|---|
| 1 | **Administrator Sistem** | A-01 s/d A-05 | ⚠️ Role ada, fitur admin belum (lihat bagian 2) |
| 1 | **Administrator Sistem** | A-01 s/d A-05 | ⚠️ A-01 selesai, A-02A-05 belum (lihat bagian 2) |
| 2 | **Pengurus Rumah Ibadah** | I-01 s/d I-06 | ⚠️ Bisa CRUD ibadah, tapi belum ada ownership |
| 3 | **Petugas Pendataan (Operator)** | P-01 s/d P-05 | ⚠️ Bisa CRUD miskin, belum ada form edit & verifikasi |
| 4 | **Pemangku Kebijakan** | K-01 s/d K-04 | ⚠️ View-only sudah, dashboard & ekspor lanjutan belum |
@@ -36,7 +36,7 @@
| Kode | Fitur | Status |
|---|---|---|
| A-01 | **Manajemen Pengguna** — CRUD user, assign role, reset password | ❌ Belum ada |
| A-01 | **Manajemen Pengguna** — CRUD user, assign role, reset password | ✅ Selesai |
| A-02 | **Bulk Delete** — Hapus data massal | ❌ Belum ada |
| A-02 | **Import CSV** — Import data dari file CSV | ❌ Belum ada |
| A-03 | **Konfigurasi Sistem** — Batas wilayah, radius min/max, legenda peta | ❌ Belum ada |
@@ -85,11 +85,11 @@ Data bisa ditambah dan dihapus. Untuk lokasi: drag marker (ibadah & miskin) dan
| Autentikasi & RBAC | ✅ 6/6 komponen | — |
| Role Pengguna | ✅ 4/4 role | — |
| Ownership pengurus_ibadah | ✅ 1/1 | — |
| Fitur Admin | | ❌ 8 fitur |
| Fitur Admin | ✅ 1/8 | ❌ 7 fitur |
| Fitur Edit Data | ✅ 2/2 | — |
| Fitur Analisis/Dashboard | — | ❌ 3 fitur |
| Fitur Cetak/Ekspor | — | ❌ 3 fitur |
| **Total sisa** | | **~14 item** |
| **Total sisa** | | **~13 item** |
---
@@ -99,7 +99,7 @@ Data bisa ditambah dan dihapus. Untuk lokasi: drag marker (ibadah & miskin) dan
|---|---|---|
| ~~Plan 1~~ | ~~Auth & RBAC~~ | ✅ Selesai |
| ~~Plan 2~~ | ~~Form Edit Rumah Ibadah & Keluarga Miskin + Ownership~~ | ✅ Selesai |
| Plan 3 | Manajemen Pengguna (Admin: CRUD user, assign role) | Tinggi |
| ~~Plan 3~~ | ~~Manajemen Pengguna (Admin: CRUD user, assign role)~~ | ✅ Selesai |
| Plan 4 | Dashboard Statistik + Gap Analysis (Pemangku Kebijakan) | Sedang |
| Plan 5 | Ekspor PDF + Ekspor per Radius + Cetak Laporan | Sedang |
| Plan 6 | Fitur Admin lanjutan (Bulk delete, CSV import, Log, Backup) | Rendah |