Setting Hak Akses pada YII2 (Access Rules Using matchCallback)
Sistem
infomasi terdapat beberapa user dengan hak akses berbeda-beda, gua akan contoh
untuk mengatur hak akses setiap user pada yii2. contoh berikut menggunakan matchCallback
terdapat 2 user, yaitu:
1. Admin
2. Pimpinan
Lanjut
(Suara Aril Noah)....
1.
Update Tabel User (Database pada Phpmyadmin)
pada tabel user tambah 1 column
(level). contoh pada gambar berikut:
2. Update Controller
setelah melakukan tahap pertama,
selanjutnya buka controller yang ingin di berikan hak akses.
contoh
nya pada data master admin, yang bisa CRUD data admin hanya admin, berikut
settingan pada controller:
Source: https://www.yiiframework.com/doc/guide/2.0/en/security-authorization
use yii\filters\AccessControl;
class JamaahController extends Controller
{
/**
* {@inheritdoc}
*/
public function behaviors()
{
return [
'access'=>[
'class'=>AccessControl::classname(),
'rules' => [
[
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action) {
if (Yii::$app->user->identity->level == 'admin') {
# code...
return true;
}
},
]
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
];
}
public function actionCreate()
{
return $this->render('index');
}
class JamaahController extends Controller
{
/**
* {@inheritdoc}
*/
public function behaviors()
{
return [
'access'=>[
'class'=>AccessControl::classname(),
'rules' => [
[
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action) {
if (Yii::$app->user->identity->level == 'admin') {
# code...
return true;
}
},
]
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
];
}
public function actionCreate()
{
return $this->render('index');
}
Sekian Terima Kasih, Wasalam!!!
Leave a Comment