8476c5d643
- 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>
106 lines
4.6 KiB
Markdown
106 lines
4.6 KiB
Markdown
# Fitur & Role yang Belum Ada di Project WebGIS
|
||
|
||
> Berdasarkan perbandingan dokumen SKPL (`D1041231009_RadityaIndraPutranto_SKPL_SIG.docx`) dengan implementasi aktual project.
|
||
>
|
||
> **Terakhir diperbarui:** 2026-06-03 — setelah implementasi Manajemen Pengguna (Plan 3).
|
||
|
||
---
|
||
|
||
## 🔐 1. Sistem Autentikasi & Role
|
||
|
||
### 1.1 Komponen:
|
||
|
||
- [x] **Model User** — `App\Models\User` dengan `HasRoles` (Spatie)
|
||
- [x] **Migration `users`** — Tabel users + password_reset_tokens
|
||
- [x] **Halaman Login** — `resources/views/auth/login.blade.php`
|
||
- [x] **AuthController** — Login/logout dengan session regeneration
|
||
- [x] **Middleware Auth** — Semua route dilindungi, API di-enforce di backend
|
||
- [x] **Role-Based Access Control (RBAC)** — Spatie Laravel Permission v8, 4 role aktif
|
||
|
||
### 1.2 Empat role:
|
||
|
||
| # | Role | Kode SKPL | Status |
|
||
|---|---|---|---|
|
||
| 1 | **Administrator Sistem** | A-01 s/d A-05 | ⚠️ A-01 selesai, A-02–A-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 |
|
||
|
||
### 1.3 Gap ownership yang ditemukan saat implementasi:
|
||
|
||
- [x] **Ownership Rumah Ibadah** — `pengurus_ibadah` seharusnya hanya bisa edit/hapus data ibadah miliknya sendiri. Saat ini bisa edit/hapus **semua** ibadah. Butuh kolom `user_id` di tabel `rumah_ibadah` + policy/gate untuk enforce ownership.
|
||
|
||
---
|
||
|
||
## 🛠️ 2. Fitur Administrator (A-01 s/d A-05)
|
||
|
||
| Kode | Fitur | Status |
|
||
|---|---|---|
|
||
| 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 |
|
||
| A-04 | **Log Aktivitas** — Mencatat dan menampilkan log aktivitas pengguna | ❌ Belum ada |
|
||
| A-04 | **Statistik Penggunaan** — Ringkasan penggunaan sistem | ❌ Belum ada |
|
||
| A-04 | **Notifikasi Perubahan Data** — Notif jika data ditambah/diubah | ❌ Belum ada |
|
||
| A-05 | **Backup & Restore** — Backup database manual, jadwal backup otomatis | ❌ Belum ada |
|
||
|
||
---
|
||
|
||
## ✏️ 3. Fitur Edit Data (Multiple Roles)
|
||
|
||
Data bisa ditambah dan dihapus. Untuk lokasi: drag marker (ibadah & miskin) dan ubah radius (ibadah saja) sudah bisa. Namun **belum ada form edit** untuk field lainnya.
|
||
|
||
| Fitur | Role terkait | Status |
|
||
|---|---|---|
|
||
| **Form Edit Rumah Ibadah** — Edit nama, jenis, pengurus, telepon, jemaah, keterangan | I-06, A-02 | ✅ Selesai |
|
||
| **Form Edit Keluarga Miskin** — Edit nama KK, jumlah jiwa, pekerjaan, pendapatan, kondisi | P-02, A-02 | ✅ Selesai |
|
||
|
||
---
|
||
|
||
## 📊 4. Fitur Analisis & Dashboard (Pemangku Kebijakan)
|
||
|
||
| Kode | Fitur | Status |
|
||
|---|---|---|
|
||
| K-02 | **Dashboard Statistik Lengkap** — Perbandingan antar wilayah, tren waktu | ❌ Belum ada (hanya ada total dasar di halaman Data) |
|
||
| K-03 | **Analisis Kesenjangan (Gap Analysis)** — Identifikasi wilayah miskin yang kurang terjangkau rumah ibadah | ❌ Belum ada |
|
||
| K-04 | **Ekspor Laporan Terfilter** — Ekspor khusus per radius/wilayah untuk laporan resmi | ❌ Belum ada (hanya CSV semua data) |
|
||
|
||
---
|
||
|
||
## 🖨️ 5. Fitur Cetak & Ekspor Lanjutan
|
||
|
||
| Fitur | Role terkait | Status |
|
||
|---|---|---|
|
||
| **Cetak Laporan Wilayah** — Print daftar keluarga miskin dalam radius rumah ibadah | I-04 | ❌ Belum ada |
|
||
| **Ekspor PDF** — Format laporan resmi | K-04 | ❌ Belum ada |
|
||
| **Ekspor per Radius** — Data yang terfilter per analisis radius | I-04, K-04 | ❌ Belum ada |
|
||
|
||
---
|
||
|
||
## 📋 Ringkasan
|
||
|
||
| Kategori | Selesai | Belum |
|
||
|---|---|---|
|
||
| Autentikasi & RBAC | ✅ 6/6 komponen | — |
|
||
| Role Pengguna | ✅ 4/4 role | — |
|
||
| Ownership pengurus_ibadah | ✅ 1/1 | — |
|
||
| Fitur Admin | ✅ 1/8 | ❌ 7 fitur |
|
||
| Fitur Edit Data | ✅ 2/2 | — |
|
||
| Fitur Analisis/Dashboard | — | ❌ 3 fitur |
|
||
| Fitur Cetak/Ekspor | — | ❌ 3 fitur |
|
||
| **Total sisa** | | **~13 item** |
|
||
|
||
---
|
||
|
||
## 🗺️ Urutan Plan yang Disarankan
|
||
|
||
| Plan | Isi | Prioritas |
|
||
|---|---|---|
|
||
| ~~Plan 1~~ | ~~Auth & RBAC~~ | ✅ Selesai |
|
||
| ~~Plan 2~~ | ~~Form Edit Rumah Ibadah & Keluarga Miskin + Ownership~~ | ✅ Selesai |
|
||
| ~~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 |
|