## 1. Prinsip *Least Privilege*
SIAKAD menerapkan **RBAC (Role-Based Access Control)** berlapis. Setiap pengguna HANYA DIBERIKAN hak akses sesuai kebutuhan pekerjaannya. TIDAK ADA pengguna yang punya akses penuh selain peran **Administrator** yang ditunjuk.
## 2. Pembagian Peran & Akses Utama
| Peran | Fitur Utama yang Diizinkan |
| --- | --- |
| **Administrator** | Semua fitur. CRUD data master (Guru, Siswa, Kelas, Mapel, Jadwal), Verifikasi & Reset Password user, Manage Pengumuman, Kelola FAQ & Kebijakan, Tanggapi Laporan Masalah. |
| **Guru** | Lihat Jadwal Mengajar, Input/Edit Nilai mapel yang diampu, Absensi kelas, Lihat Profil & ubah data diri sendiri. |
| **Siswa** | Lihat Nilai, Lihat Jadwal Pelajaran, Lihat Absensi & Riwayat Absen, Unduh Raport, Kirim Laporan Masalah, Ubah Profil. |
| **Kepala Sekolah** | Dashboard Monitoring, Laporan Akademik, Laporan Nilai & Absensi, Verifikasi Raport. |
| **Tenaga Kependidikan (Tendik)** | Terbatas sesuai penunjukan Admin (TU, BK, dsb). |
## 3. Larangan Teknis
- **Siswa / Guru TIDAK BOLEH** memaksa mengakses URL /admin/... dengan mengetik manual di address bar. Middleware `CheckRole` akan memblokir, logout paksa, dan mencatat IP user.
- **Siswa TIDAK BOLEH** edit data siswa lain, input / edit / hapus nilai.
- **Guru TIDAK BOLEH** approve user, reset password user lain, mengubah jadwal tanpa sepengetahuan Admin.
## 4. Pengajuan Kenaikan Hak Akses
Jika Anda membutuhkan akses fitur tapi belum punya izin (misal Tendik baru butuh akses input data siswa):
1. Kirim **Laporan Masalah** → kategori **Saran** atau **Masalah Akses**.
2. Lampirkan bukti Surat Tugas / SK dari Kepala Sekolah.
3. Admin akan review 1x24 jam, jika disetujui peran Anda akan diupdate.