Yii2: Manage User Level Access with Yii2 Admin Extension

Sebuah aplikasi minimal memiliki 2 level user yaitu Admin dan Guest, kalo hanya ini yang Anda perlukan maka Yii2 by default telah membuatkannya, dan kita tinggal pake..

if (Yii::$app->user->isGuest) {
// Guest
}
else{
// Admin

}

Contoh diatas hanya digunakan untuk menguji apakah user itu login ato enggak (belum), jika login maka berarti dia admin, jika belum maka guest.

Namun jika aplikasi kita mengharuskan memiliki lebih banyak user dengan level yang berbeda-beda maka saatnya kita ngomongin apa yang disebut dengan Authorization. Misal dalam contoh sederhana yaitu web blog, ada user yang bertindak sebagai pengunjung biasa, dimana dia hanya diberi akses untuk menulis komentar terhadap suatu artikel, lalu ada lagi user yang bertindak sebagai penulis artikel, atau sebagai editor, dll.

Yii2 menyediakan dua metode yaitu Access Control Filter (ACF) dan Role-Based Access Control (RBAC). Dua topik yang berat bagi pemula.. Anda bisa baca dan pelajari disini http://www.yiiframework.com/doc-2.0/guide-security-authorization.html, perlu 3 sks untuk menjelaskan keduanya, dan saya tidak merasa sanggup untuk melakukannya. Dari dua metode itu, RBAC lebih advance. RBAC sendiri sebenarnya merupakan konsep umum tidak hanya di Yii.

Nah karena itu saya menawarkan yii2-admin https://github.com/mdmsoft/yii2-admin (emang jualan?? :)) sebuah extension untuk menghandle RBAC di Yii2 atau bisa dikatakan user interface dari metode RBAC. Extension ini juga dilengkapi dengan manajemen menu dinamis. Yang menarik bahwa, extension ini ternyata buatan anak bangsa :) namanya om Misbahul Munir..

Instalasi pun mudah yaitu menggunkan composer. Via command prompt ketik perintah berikut:

php composer.phar require mdmsoft/yii2-admin "*"

atau Anda bisa juga memasukkan kedalam file composer.json pada project Anda..

"mdmsoft/yii2-admin": "*"

 

5 Comments
  1. ilham
  2. Jamal
  3. Hafid Mukhlasin
  4. Sirojul Munir

Leave a Reply

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