Role-Based Access Control (RBAC)
Matriks hak akses dan izin operasi untuk peran Admin, Dokter, Operator, dan Orang Tua.
Status: Stablev1.0.0Source Verified: Yes
Source:
docs/ROLE_AND_PERMISSION_MATRIX.md, src/config/navigation.tsTests: tests/unit/rbacEnforcement.test.ts, tests/unit/navigationPolicy.test.tsRole-Based Access Control (RBAC) Matrix#
OrthoBreath menerapkan pemisahan tugas (separation of duties) berbasis 4 peran pengguna standar dengan isolasi multi-tenant antar-klinik.
1. Definisi Peran (Roles)#
admin(Administrator Sistem / Cabang Klinik): Bertanggung jawab atas pengelolaan staf klinik, pendaftaran modul IoT, verifikasi pasien (ACC), dan pengawasan kesehatan sistem.doctor(Dokter Gigi Spesialis Ortodonsia): Memiliki otoritas medis penuh untuk meninjau hasil sensor napas dan foto dental AI, menegakkan diagnosis klinis, serta menandatangani resume rekam medis.operator(Perawat / Tenaga Kesehatan Terlatih): Bertugas mendaftarkan pasien anak, memasang masker sensor pernapasan, dan memandu pemotretan gigi intraoral.parent(Orang Tua / Wali Pasien): Memiliki akses mandiri untuk melihat data profil anak, memantau kemajuan pemeriksaan, dan mengunduh resume rekam medis resmi.
2. Matriks Izin Akses Fitur#
| Fitur / Operasi Sistem | Administrator (admin) | Dokter Gigi (doctor) | Operator (operator) | Orang Tua (parent) |
|---|---|---|---|---|
Ruang Kerja Dashboard (/app) | ✓ | ✓ | ✓ | ✓ |
Manajemen Pasien & Verifikasi (/app/pasien) | ✓ | ✓ | ✓ | ✓ (Anak Sendiri) |
Sesi Pemeriksaan Sensor & Gigi (/app/pemeriksaan) | ✗ | ✓ | ✓ | ✗ |
Antrean Tinjauan Klinis (/app/riwayat) | ✗ | ✓ | ✓ | ✗ |
Penerbitan Rekam Medis (/app/laporan) | ✗ | ✓ | ✗ | ✗ |
Unduh Laporan Medis Resmi (/app/laporan) | ✗ | ✓ | ✓ | ✓ (Anak Sendiri) |
Pusat Panduan & Bantuan (/app/bantuan) | ✓ | ✓ | ✓ | ✓ |
Manajemen Staf & Dokter (/app/admin/users) | ✓ | ✗ | ✗ | ✗ |
Status & Pendaftaran Alat IoT (/app/admin/devices) | ✓ | ✗ | ✓ (Baca) | ✗ |
Kesehatan Sistem & Cloud (/app/admin/system-health) | ✓ | ✗ | ✗ | ✗ |
Log Jejak Audit Administratif (/app/admin/audit) | ✓ | ✗ | ✗ | ✗ |
3. Struktur Navigasi Bilah Samping (Sidebar)#
- Wali Pasien (5 Menu): Ruang Kerja · Anak / Pasien · Laporan · Notifikasi · Bantuan
- Dokter Gigi (6 Menu): Ruang Kerja · Anak / Pasien · Tinjauan · Laporan · Notifikasi · Bantuan
- Operator Klinik (7 Menu): Ruang Kerja · Anak / Pasien · Pemeriksaan · Tinjauan · Perangkat · Notifikasi · Bantuan
- Administrator (7 Menu): Ruang Kerja · Anak / Pasien · Pengguna · Perangkat · Kesehatan Sistem · Notifikasi · Bantuan
4. Mapping Route & Middleware Guards#
text
text
1Route: /app/admin/* → Guard: requireRole(["admin"])2Route: /app/pemeriksaan/* → Guard: requireRole(["doctor", "operator"])3Route: /app/riwayat/* → Guard: requireRole(["doctor", "operator"])4Route: /app/laporan/* → Guard: requireRole(["admin", "doctor", "operator", "parent"])5Route: /app/pasien/* → Guard: requireRole(["admin", "doctor", "operator", "parent"])6Route: /app/bantuan/* → Guard: Authenticated User (All Roles)