> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mertani.co.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Hak Akses Role

**Permission System** merupakan komponen inti dalam mekanisme kontrol akses yang menentukan batasan tindakan pengguna dalam sistem.\
Melalui permission, sistem dapat mengatur secara spesifik:

* Apa yang dapat dilihat oleh pengguna
* Apa yang dapat dilakukan oleh pengguna

<Card title="Granular Access Control" icon="lock">
  Permission memungkinkan kontrol akses secara detail hingga level aksi, seperti create, read, update, dan delete, sehingga memberikan fleksibilitas tinggi dalam pengelolaan user.
</Card>

***

## Tujuan dan Use Case

Permission system digunakan untuk:

* Membatasi akses fitur berdasarkan tanggung jawab
* Mencegah tindakan yang tidak diizinkan
* Mengamankan data sensitif
* Mendukung implementasi **Role-Based Access Control (RBAC)**

***

## Konsep Permission

Permission umumnya dibagi ke dalam beberapa jenis aksi:

* **View (Read)** → melihat data atau halaman
* **Create** → menambahkan data baru
* **Update** → mengubah data yang sudah ada
* **Delete** → menghapus data

Setiap modul dalam sistem dapat memiliki kombinasi permission yang berbeda.

***

## Behavior Sistem

Sistem menerapkan aturan berikut dalam pengelolaan permission:

* Permission berlaku untuk **semua user dalam role tersebut**
* Perubahan permission bersifat **real-time**
* Berlaku di seluruh modul dashboard (global enforcement)
* Permission bekerja di level backend, bukan hanya tampilan UI

<info>
  Permission lebih tinggi dari UI, jika suatu aksi tidak diizinkan, sistem tetap akan menolak meskipun UI dimanipulasi.
</info>

***

## Prasyarat

Sebelum mengatur permission:

* Role sudah dibuat
* Anda memiliki akses untuk mengelola role
* Struktur modul dan fitur sudah dipahami

***

## Langkah Pengaturan Permission

<Steps>
  <Step title="Access Role Management Page" toc={false}>
    Buka **Instansi** → **Peran Pengguna**
  </Step>

  <Step title="Select Role" toc={false}>
    Cari dan pilih role yang ingin dikonfigurasi
  </Step>

  <Step title="Open Permission Settings" toc={false}>
    Klik opsi `Hak Akses` untuk membuka konfigurasi permission
  </Step>

  <Step title="Configure Role Permissions" toc={false}>
    Pilih permission yang diizinkan sesuai kebutuhan (View, Create, Update, Delete)
  </Step>

  <Step title="Save Permission Changes" toc={false}>
    Klik tombol **Simpan** untuk menerapkan perubahan

    <Frame>
      <video src="https://mintcdn.com/mertani/yrybY0Cd-4ZXOwAB/assets/dashboard-guides/access-control/hakakses-role.webm?fit=max&auto=format&n=yrybY0Cd-4ZXOwAB&q=85&s=bac9b3c263b465be388c15d22efa1981" controls autoPlay loop playsInline muted data-path="assets/dashboard-guides/access-control/hakakses-role.webm" />
    </Frame>
  </Step>
</Steps>

***

## Dampak Perubahan Permission

Setelah permission diubah:

* Akses user akan langsung menyesuaikan
* Menu atau fitur tertentu bisa muncul atau hilang
* Aksi tertentu bisa diaktifkan atau dinonaktifkan
* Tidak memerlukan login ulang

***

## Best Practice

Untuk implementasi yang optimal:

* Terapkan prinsip **least privilege** (akses seminimal mungkin)
* Hindari memberikan semua permission ke semua role
* Gunakan role berbeda untuk fungsi berbeda
* Lakukan audit permission secara berkala
* Dokumentasikan konfigurasi penting

***

## Note

* Permission adalah fondasi utama keamanan sistem
* Perubahan kecil dapat berdampak besar terhadap operasional
* Disarankan untuk melakukan pengujian setelah perubahan permission
