Tutorial Yii2 Bagian 18-19 : Role-Based Access Control (RBAC)

RBAC merupakan fitur penting yang perlu ada di aplikasi yang kita buat, karena digunakan untuk mengatur akses yang mana yang boleh dilihat oleh role tertentu.

1. Siapkan tabel-tabel yang dibutuhkan yaitu tabel auth_assignment, auth_item, auth_item_child, dan auth_rule, file sql nya seperti ini :

2. Misalnya kita ingin memberikan rule kepada user untuk membuat branch. Tambahkan ke tabel auth_item :

 

Tutorial-Yii2-RBAC1-

3. Selanjutnya, kita memberikan role dari auth_item yang baru saja dibuat ke user tertentu. Hal ini dilakukan dari tabel auth_assignment. Item_name yang ada di tabel auth_assignment adalah name yang berasal dari tabel auth_item yang baru saja kita buat. Kolom lainnya adalah user_id dari tabel user.

 

Tutorial-Yii2-RBAC2-

Ini artinya user_id nomer 2 punya akses untuk menambah branch.

4. Tabel auth_item_child memiliki kolom parent dan child. Tabel ini digunakan untuk membuat hirarki rule apa saja yang boleh beserta turunannya. Misalnya kita punya auth_item ‘admin’ yang bisa melakukan semua role. Masukkan ‘admin’ pada kolom ‘parent’, dan child ‘tambah-branch’ dan seterusnya.

Sehingga selanjutnya pada tabel auth_assignment kita bisa memberikan akses ‘admin’ pada user tertentu.

5. Modifikasi file main.php untuk menambahkan auth-manager :

6. Modifikasi BranchesController.php pada actionCreate untuk menambahkan rule tambah-branch yang sudah kita tulis di database. Apabila tidak punya otorisasi, maka akan timbul pesan error :

Akan muncul pesan error apabila kita login dengan user yang tidak memiliki permission untuk menambah branch.

Tutorial Yii2 : RBAC3

 

Tutorial ini sebagai dokumentasi dan pembelajaran pribadi sekalian belajar terjemahin bahasa Inggris, dan siapa tahu bermanfaat buat orang lain. Sumber lengkapnya diambil dari Youtube DoingITEasy Channel.

1 thought on “Tutorial Yii2 Bagian 18-19 : Role-Based Access Control (RBAC)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.