کار با کنترلر و اکشن در yii2(قسمت دوم)

بحثی که امروز آموزش میدیم
AccessControl هست که یک اکشن برای فیلتر کردن می باشد.
این اکشن وظیفه ی چک کردن دسترسی ها هنگام درخواست یک اکشن را بر اساس IP یا نقش های کاربر را بر عهده دارد.
که با دو گزینه ی allow برای اجازه دادن و deny برای عدم اجازه مدیریت می شوند.
برای تعریف AccessControl باید اونو درمتد behaviors() در کنترلر استفاده کرد.

برای مثال مثال زیر دسترسی به اکشن های create , update را برای کاربرانی که وارد سایت شده اند ( @ ) اجازه داده است ,
اما برای سایر کاربران غیر فعال کرده است .

public function behaviors()
{
    return [
        'access' => [
            'class' => \yii\filters\AccessControl::className(),
            'only' => ['create', 'update'],
            'rules' => [
                // deny all POST requests
                [
                    'allow' => false,
                    'verbs' => ['POST']
                ],
                // allow authenticated users
                [
                    'allow' => true,
                    'roles' => ['@'],
                ],
                // everything else is denied
            ],
        ],
    ];
}

با استفاده از actions می توانید مشخص کنید که نحوه ی درخواست هر اکشن به چه شکل باشد .
برای مثال

public function behaviors()
{
    return [
        'verbs' => [
            'class' => \yii\filters\VerbFilter::className(),
            'actions' => [
                'index'  => ['get'],
                'view'   => ['get'],
                'create' => ['get', 'post'],
                'update' => ['get', 'put', 'post'],
                'delete' => ['post', 'delete'],
            ],
        ],
    ];
}

با کد بالا ما مشخص کردیم که هر اکشن با چه درخواستی قابل دسترسی می باشد
مثلا اکشن index فقط با درخواست get قابل دسترسی می باشد

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *