В Yii2 появилась возможность повесить свою бизнес логику в виде анонимной функции для контроля доступа к странице.
Теперь вы можете делать какие-то действия и возвращать либо true либо false для доступа к странице.
Сделать это можно следующим образом:
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions'=>['index','view','create','update','delete'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action) {
return (Yii::$app->user->identity->login=="superuser");
}
],
],
],
];
}
В данном коде мы добавляем в список поведение AccessControl, прописываем actions и ставим анонимную функцию на matchCallback.
Функция должна вернуть true (доступ разрешен) или false (доступ запрещен, 403 Forbidden)
// так по приличнее будет
‘matchCallback’ => function ($rule, $action) {
$user = Yii::$app->user->identity;
return ($user->login==»superuser»);
}
Да, вы правы. Упустил это из виду. Обновил статью