بحثی که امروز آموزش میدیم
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 قابل دسترسی می باشد