71 lines
2.6 KiB
Markdown
71 lines
2.6 KiB
Markdown
# Placeholder API Permission
|
|
|
|
## Deskripsi
|
|
Placeholder API untuk permission digunakan untuk testing dan development ketika backend API tidak tersedia.
|
|
|
|
## Cara Menggunakan
|
|
|
|
### 1. Menggunakan Placeholder API secara Default
|
|
Placeholder API akan otomatis digunakan sebagai fallback jika backend API (`http://10.10.150.131:8089/api/v1/permission`) tidak dapat diakses.
|
|
|
|
### 2. Memaksa Menggunakan Placeholder API
|
|
Tambahkan query parameter `usePlaceholder=true` pada request:
|
|
```
|
|
GET /api/permission?roles=superadmin&groups=STIM&usePlaceholder=true
|
|
```
|
|
|
|
### 3. Menonaktifkan Placeholder API
|
|
Tambahkan query parameter `usePlaceholder=false` pada request:
|
|
```
|
|
GET /api/permission?roles=superadmin&groups=STIM&usePlaceholder=false
|
|
```
|
|
|
|
## Data Placeholder yang Tersedia
|
|
|
|
### Role: superadmin, Group: STIM
|
|
Data placeholder mengembalikan 5 permission items:
|
|
- Halaman Utama (read: true, active: true)
|
|
- Pengaturan (read: true, active: true)
|
|
- Halaman (read: true, active: true, disable: true)
|
|
- Dashboard (read: true, active: true, disable: true)
|
|
|
|
## Mapping Pagename ke Menu Sidebar
|
|
|
|
Sistem akan otomatis memetakan pagename dari API ke nama menu di sidebar:
|
|
- "Halaman Utama" → "Dashboard"
|
|
- "Pengaturan" → "Master Data"
|
|
- "Halaman" → "Master Data"
|
|
- "Dashboard" → "Dashboard"
|
|
|
|
## Testing dengan User bayurssa
|
|
|
|
Untuk testing dengan user email "bayurssa":
|
|
1. Pastikan user memiliki role "superadmin" dan group "STIM" di Keycloak
|
|
2. Login dengan email "bayurssa" dan password "12345"
|
|
3. Sistem akan otomatis menggunakan placeholder API jika backend tidak tersedia
|
|
4. Sidebar akan terfilter berdasarkan permissions dari placeholder API
|
|
|
|
## Mapping Role dan Group
|
|
|
|
Sistem secara otomatis melakukan normalisasi untuk role dan group:
|
|
|
|
### Normalisasi Role
|
|
- `default-roles-sandbox` → `superadmin`
|
|
- Role lain akan digunakan apa adanya (lowercase)
|
|
|
|
### Normalisasi Group
|
|
- `Instalasi STIM` → `STIM`
|
|
- Group yang mengandung "Instalasi" akan diekstrak untuk mengambil bagian "STIM"
|
|
- Group lain akan digunakan apa adanya (uppercase)
|
|
|
|
### Contoh Mapping
|
|
- Role: `default-roles-sandbox` + Group: `Instalasi STIM` → API akan menggunakan `roles=superadmin&groups=STIM`
|
|
- Role: `default-roles-sandbox` + Group: `STIM` → API akan menggunakan `roles=superadmin&groups=STIM`
|
|
|
|
## Catatan
|
|
- Placeholder API hanya tersedia untuk kombinasi role dan group yang sudah didefinisikan
|
|
- Sistem akan otomatis melakukan normalisasi role dan group sebelum memanggil API
|
|
- Jika role/group tidak ditemukan di placeholder, sistem akan mencoba menggunakan backend API
|
|
- Jika backend API juga gagal, sistem akan mengembalikan data kosong
|
|
|