# Walkthrough: Sistem Manajemen Role & Hak Akses (RBAC)

Kita telah berhasil mengimplementasikan sistem keamanan tingkat lanjut. Sekarang Bapak memiliki kendali penuh atas menu mana saja yang boleh diakses oleh setiap staf.

## Fitur Utama yang Diimplementasikan

### 1. Hak Akses Granular (CRUD)
- Bukan hanya sekadar "Boleh melihat menu", tapi Bapak bisa mengatur hak akses per-aksi.
- Contoh: Staf Pakan boleh **Melihat** daftar Batch, tapi tidak punya izin untuk **Menghapus** Batch tersebut.
- Total terdapat **28 kategori hak akses** yang mencakup seluruh modul aplikasi.

### 2. Keamanan Tingkat Router (Middleware)
- Jika staf mencoba mengakses URL secara langsung (copy-paste URL) ke halaman yang tidak diizinkan, sistem akan otomatis mencegatnya dan menampilkan pesan **"403 Forbidden"**.

### 3. Menu Sidebar Dinamis
- Menu sidebar sekarang "pintar". Item menu hanya akan muncul jika pengguna yang login memiliki izin untuk melihat modul tersebut.
- Dashboard tetap bersih dan tidak membingungkan bagi staf dengan tugas spesifik.

### 4. Modul Administrasi RBAC
- **Daftar Role**: Bapak bisa membuat jabatan baru sesuai kebutuhan (Contoh: Kepala Kandang, Admin Keuangan).
- **Matrix Hak Akses**: Halaman khusus untuk mencentang hak akses secara visual (Kotak centang per-modul).

### 5. Reorganisasi Menu Sidebar
- **Perubahan**: Memisahkan grup menu **Keuangan** dan **SDM & Keamanan**.
- **Tujuan**: Memudahkan navigasi dan pembagian tugas antar divisi di farm.

## Cara Penggunaan
1. Buka menu **Roles & Permissions** di bagian bawah sidebar.
2. Buat Role baru jika diperlukan.
3. Klik **Atur Hak Akses** pada Role yang diinginkan.
4. Centang akses apa saja yang diberikan, lalu klik **Simpan**.
5. Pada menu **Pekerja & SDM**, pastikan setiap user telah diberikan Role yang sesuai.

## Verifikasi Teknis
- [x] Tabel `permissions` dan `role_permissions` terbuat dan terisi data awal.
- [x] Fungsi `hasPermission()` dapat dipanggil di semua View.
- [x] Middleware Router bekerja mencegat akses ilegal.
- [x] Seluruh menu admin lama telah dibungkus dengan pengecekan izin.

> [!IMPORTANT]
> **Catatan Penting**: 
> Saat ini, user Admin (Bapak) sudah otomatis mendapatkan seluruh 28 hak akses. Pengguna lain mungkin perlu Bapak atur lewat menu baru ini agar menunya muncul kembali sesuai tugas mereka.
