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:
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');
    }

Source: https://www.yiiframework.com/doc/guide/2.0/en/security-authorization
Sekian Terima Kasih, Wasalam!!!

No comments

Powered by Blogger.