Keamanan & Hak Akses
🔐 PANDUAN KEAMANAN & HAK AKSES BERJENJANG (RBAC)
Sistem ERP BUMDes menggunakan mekanisme Hierarchical Role-Based Access Control (RBAC) untuk memastikan keamanan data, kerahasiaan antar unit, dan efisiensi pengawasan berjenjang.
1. PRINSIP ISOLASI UNIT USAHA#
Prinsip utama keamanan sistem adalah Isolasi Data Berdasarkan Penugasan. Setiap pengguna yang bukan pengelola pusat (Pusat/Holding) hanya diizinkan melihat data yang relevan dengan unit kerjanya.
A. Cakupan Akses (Scope)
- Akses Horizontal (Terlarang): Manajer Unit A tidak bisa melihat data Unit B.
- Akses Vertikal (Diizinkan): Manajer Unit Utama bisa melihat data seluruh Sub-Unit di bawahnya secara otomatis.
[!IMPORTANT] Sistem secara otomatis menyaring (filter) seluruh database (Jurnal, Stok, Laporan) berdasarkan
assigned_unit_idpengguna dan seluruhdescendants(anak/cucu unit) dari unit tersebut.
2. MATRIKS PERAN & WEWENANG KEUANGAN#
Berikut adalah detail pembagian akses untuk modul Keuangan dan Akuntansi:
| Peran (Role) | Cakupan Data | Wewenang Utama |
|---|---|---|
| Super Admin / Direktur | Seluruh Unit (Konsolidasi Pusat) | Full Control, Manajemen User, Audit Global |
| Bendahara Pusat | Seluruh Unit | Verifikasi Jurnal, Laporan Konsolidasi, Manajemen COA |
| Manajer Unit (Kepala Unit) | Unit Sendiri + Semua Sub-Unit | Input Jurnal Unit, Monitoring Laba Rugi Sub-Unit |
| Kepala Sub-Unit | Hanya Sub-Unit Sendiri | Input Operasional Harian, Cek Stok, Laporan Kasir |
| Admin Unit | Unit Sendiri + Sub-Unit | Administrasi Dokumen, Input Data Master Unit |
3. FITUR KEAMANAN PADA LAPORAN#
Laporan keuangan (Laba Rugi, Neraca, Arus Kas) telah dilengkapi dengan filter cerdas yang mendeteksi peran pengguna:
- Auto-Lock Filter: Jika Anda seorang Manajer Unit, dropdown pilihan unit akan terkunci pada unit Anda. Anda tidak bisa memilih unit lain di luar struktur Anda.
- Recursive Drill-down: Anda tetap bisa memilih Sub-Unit di bawah Anda untuk melihat performa spesifik, atau memilih unit utama untuk melihat hasil Konsolidasi (Gabungan).
- Server-Side Enforcement: Keamanan tidak hanya di tampilan (UI), tapi juga di server. Jika seseorang mencoba mengakses data unit lain via URL/API, sistem akan memblokir permintaan tersebut (Unauthorized).
4. MANAJEMEN STRUKTUR UNIT#
Untuk menjaga integritas organisasi, terdapat batasan dalam manajemen Unit Usaha:
- Pusat (Holding): Hanya bisa dibuat/diubah oleh Super Admin.
- Sub-Unit Baru: Manajer Unit dapat menambah Sub-Unit di bawah unitnya sendiri, namun tidak bisa memindahkan sub-unit tersebut ke unit induk lain (Cross-parenting) tanpa izin Pusat.
- Deaktivasi: Unit yang memiliki transaksi aktif tidak dapat dihapus, hanya dapat di-nonaktifkan untuk menjaga histori laporan audit.
5. PANDUAN UNTUK MANAJER UNIT (KEPALA UNIT USAHA)#
Jika Anda menjabat sebagai Kepala Unit Usaha:
- Sidebar: Anda akan melihat menu Financial Core dan Akuntansi. Ini normal karena Anda bertanggung jawab atas pembukuan unit Anda.
- Laporan: Saat membuka Laba/Rugi, secara default Anda melihat angka Konsolidasi Unit Anda (Total dari semua sub-unit di bawah Anda).
- Jurnal: Anda hanya dapat melihat dan membuat jurnal untuk unit Anda sendiri. Jurnal dari unit "tetangga" tidak akan muncul di daftar.
6. TEKNIS RLS (ROW LEVEL SECURITY)#
Bagi pengembang atau admin teknis, keamanan ini ditegakkan di level database menggunakan PostgreSQL Row Level Security (RLS):
sql-- Contoh logika internal RLS CREATE POLICY "Hierarchical access" ON journal_entries FOR ALL TO authenticated USING (public.has_unit_access(business_unit_id));
Fungsi has_unit_access() akan secara rekursif mengecek apakah unit_id transaksi tersebut merupakan anak/cucu dari assigned_unit_id user yang sedang login.
Terakhir diperbarui: 01 April 2026