В Yii2 появилась возможность повесить свою бизнес логику в виде анонимной функции для контроля доступа к странице.
Теперь вы можете делать какие-то действия и возвращать либо true либо false для доступа к странице.
Сделать это можно следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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»);
}
Да, вы правы. Упустил это из виду. Обновил статью