Kalau di yii1, kita bisa menggunakan modul ‘rights’ & ‘user’ untuk Otentikasi dan Otorisasi.
Sedangkan di yii2 kita bisa gunakan modul ‘yii2-admin’.
Tutorial kali ini saya menggunakan linux, so bagi yang mengunakan windows ngga masalah toh tahapannya sama saja. Yuk dimulai!
INSTALL MODULE YII2-ADMIN
1) Masuk dulu ke directory yii2 :
cd /var/www/html/yii2_advanced
2) Install module yii2-admin melalui composer
– Untuk yang pakai windows, saya asumsikan Anda sudah menginstall composer, jika belum ikuti tutorial ini (tahap 1,2,3)
Untuk menginstall modul yii2 admin, Anda harus punya file composer.phar di dalam folder yii2 :
Jika belum punya, install dengan script dibawah :
php -r "readfile('https://getcomposer.org/installer');" | php
Untuk mengistall module yii2-admin, ketik script dibawah :
php composer.phar require mdmsoft/yii2-admin "dev-master"
Setelah berhasil diinstall, maka akan terdapat sebuah folder ‘mdmsoft’ di folder vendor.
Setiap modul/ektensi yang kita install maka akan masuk ke folder ‘vendor’.
KONFIGURASI
Tahap selanjutnya kita perlu beberapa konfigurasi agar modul yii2-admin dapat berjalan.
Buka file /common/config/main-local.php, copy script dibawah ini :
<?php return [ 'modules' => [ 'admin' => [ 'class' => 'mdm\admin\Module', 'layout' => 'left-menu', // avaliable value 'left-menu', 'right-menu' and 'top-menu' 'controllerMap' => [ 'assignment' => [ 'class' => 'mdm\admin\controllers\AssignmentController', 'userClassName' => 'common\models\User', 'idField' => 'id' ] ], ] ..... ], 'components' => [ ..... 'authManager' => [ 'class' => 'yii\rbac\DbManager', // or use 'yii\rbac\DbManager' ], ..... ], ];
CREATE TABLE
Setelah melakukan konfigurasi, selanjutnya adalah meng-generate table yang sudah disediakan oleh modul yii2-admin. Oya, pada tahap ini yii harus sudah terhubung ke database ya.
Langkah-langkahnya adalah sebagai berikut :
1) Pertama, kita akan menggenerate 2 tabel (menu & migration), copy script dibawah :
php yii migrate --migrationPath=@mdm/admin/migrations
2) Kedua, menggenerate 4 tabel (auth_assignment, auth_item, auth_item_child, auth_rule), copy script berikut :
php yii migrate --migrationPath=@yii/rbac/migrations
TEST MODUL
Sekarang module yii2-admin sudah siap digunakan. Untuk dapat mengaksesnya bisa menggunakan link berikut :
http://localhost/your_yii/backend/web/index.php?r=admin http://localhost/your_yii/backend/web/index.php?r=admin/route http://localhost/your_yii/backend/web/index.php?r=admin/permission http://localhost/your_yii/backend/web/index.php?r=admin/menu http://localhost/your_yii/backend/web/index.php?r=admin/role http://localhost/your_yii/backend/web/index.php?r=admin/assignment
Jika terdapat error seperti ini :
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘yii_admin.user’ doesn’t exist
The SQL being executed was: SELECT COUNT(*) FROM `user`
Itu tandanya anda belum punya tabel user. Solusinya buat tabel user dengan script dibawah ini :
php yii migrate --migrationPath=console/migrations