Lewati ke konten utama

Roles & Permissions (RBAC)

Sistem Frog Cloud menggunakan arsitektur keamanan Role-Based Access Control (RBAC) yang fleksibel. Artinya, hak akses (apa yang boleh dilihat dan dieksekusi) tidak ditempelkan langsung pada seorang staf, melainkan pada Jabatan (Role) mereka.

Secara konseptual:

  • Admin memiliki sebuah Role (misal: "Customer Support").
  • Role memiliki banyak Permissions (misal: impersonate, view_billing, delete_user).
  • Ketika Role diperbarui, semua Admin yang memiliki jabatan tersebut akan langsung terpengaruh hak aksesnya.

Diagram Arsitektur RBAC

Daftar Jabatan (Roles) Bawaan Sistem

Secara bawaan (default), backend Frog Cloud memiliki hierarki jabatan yang telah dirancang untuk pembagian tugas yang spesifik. Di antaranya adalah:

  1. Super Admin: Kasta tertinggi yang tidak tertandingi. Memiliki hak mutlak ke semua fitur, satu-satunya yang bisa menyinkronkan Permissions, mereset password admin lain, dan menghapus staf. Role ini dikunci oleh sistem dan tidak bisa diubah/dihapus via API.
  2. Admin: Jabatan manajerial umum. Memiliki akses luas ke pengelolaan Cloud dan pengguna, namun tidak bisa mengutak-atik struktur organisasi (Admin lain).
  3. Admin Support: Pasukan garis depan. Berfokus pada layanan pengguna. Memegang izin krusial seperti melihat daftar Customer, mencabut sesi perangkat (Session Management), dan menekan tombol Impersonation.
  4. Admin Billing: Sang penguasa keuangan. Diberi wewenang eksklusif untuk merombak skema harga (VM Components, Tier, Location Pricing) dan membuat Redeem Codes / Topup Coupons.
  5. Admin Sales: Berfokus pada pencatatan transaksi masuk, promosi, dan rekonsiliasi data setoran kas.

1. Melihat Daftar Jabatan (Roles)

Endpoint ini sangat berguna untuk mengisi opsi Dropdown saat Super Admin sedang membuat akun staf baru (Create Admin) atau saat ingin melihat struktur organisasi di Backoffice.

Request
GET /api/backoffice/admin/roles

Kondisi & Tindakan:

  • Sukses (200 OK): Backend merespons daftar nama Role beserta jumlah Permissions yang terikat padanya.

2. Melihat Matriks Hak Akses (Role Permissions)

Di halaman spesifik pengaturan keamanan, Super Admin dapat melihat izin/fitur apa saja yang dipegang oleh suatu Role.

Request
GET /api/backoffice/admin/roles/{role_name}/permissions

(Ganti {role_name} dengan nama Role, misalnya Finance atau Support).

Kondisi & Tindakan:

  • Sukses (200 OK): Backend akan mengembalikan daftar objek yang merinci status assignment (Apakah aktif/diberikan atau tidak). Frontend sangat disarankan merender data ini sebagai Tabel dengan Checkbox/Toggle agar mudah dikonfigurasi.

3. Sinkronisasi & Pembaruan Hak Akses (Sync Permissions)

Jika sistem memiliki fitur baru, atau Super Admin ingin mencabut izin tertentu (misalnya melarang "Customer Support" untuk mematikan 2FA pengguna), mereka akan men-submit ulang seluruh matriks Permissions untuk sebuah Role.

Request
POST /api/backoffice/admin/roles/{role_name}/permissions
Content-Type: application/json
Request Body
{
"permissions": [
"view_dashboard",
"view_users",
"edit_users",
"impersonate_user"
]
}

Catatan Penting: Endpoint ini menggunakan metode Sync secara teknis. Artinya, apa pun array permissions yang Anda kirimkan, itu akan menggantikan secara total hak akses role tersebut. Izin yang ada di dalam database tetapi tidak Anda kirimkan pada array ini, akan otomatis dicabut (revoked). Oleh karena itu, pastikan Frontend mengirimkan seluruh daftar Checkbox yang bernilai true.