User Role Permission Component
Responsibilities
Section titled “Responsibilities”Mengelola role, permission, dan assignment akses pengguna berbasis cakupan gudang.
Interfaces/APIs
Section titled “Interfaces/APIs”Inputs
Section titled “Inputs”- Definisi role
- Daftar permission
- Relasi role pengguna
- Assignment cakupan akses organisasi atau gudang
Outputs
Section titled “Outputs”- Matriks otorisasi efektif untuk validasi akses fitur dan data.
Error Handling
Section titled “Error Handling”- Menolak role yang tidak dikenal
- Menolak permission yang tidak valid
- Menolak konflik assignment akses atau relasi role yang tidak sah.
Data Structures:
Section titled “Data Structures:”| Field | Data Type | Constraints | Nullable | Description |
|---|---|---|---|---|
| user_id | UUID | Primary Key / Foreign Key pada assignment | Tidak | Identifier pengguna yang menerima hak akses |
| organisation_id | UUID | Foreign Key -> organisation.organisation_id | Ya | Cakupan organisasi pengguna bila berlaku |
| role_name | VARCHAR(100) | Not Null | Tidak | Nama role yang diberikan ke pengguna |
| permission_name | VARCHAR(100) | Not Null | Tidak | Nama permission granular untuk kontrol fitur |
| guard_name | VARCHAR(50) | Framework constraint | Tidak | Konteks guard untuk validasi otorisasi |
| address_id | UUID | Foreign Key -> address.address_id | Ya | Cakupan alamat atau cabang yang dapat diakses |
| warehouse_id | UUID | Foreign Key -> warehouse.warehouse_id | Ya | Cakupan gudang operasional yang diotorisasi |
| is_active | BOOLEAN | Default true | Tidak | Status aktivasi kebijakan akses |
Algorithms/Logic
Section titled “Algorithms/Logic”Menghitung izin efektif dari gabungan role, permission langsung, dan pembatasan cakupan operasional agar evaluasi akses tetap deterministik pada setiap permintaan.
State Management
Section titled “State Management”Menyimpan kebijakan akses aktif per sesi dan menyinkronkan perubahan otorisasi ketika assignment role atau cakupan diperbarui.