В 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»);
}
Да, вы правы. Упустил это из виду. Обновил статью