Yii2 RBAC. Методы can() и behaviors() всегда запрещают доступ
Использую Yii2 basic. В конфигах web.php и console.php прописал:
$config['components']['authManager']['class'] = 'yii\rbac\DbManager';
$config['components']['authManager']['cache'] = 'cache';
Миграции применил, RBAC инициализировал, добавил разрешения, роли. Привязал разрешения к ролям, роли к пользователям. Проблема возникла в behaviors(). Есть такая конфигурация:
return [
'access' => [
'class' => AccessControl::class,
'rules' => [
[
'allow' => true,
'roles' => ['permissionProdView'],
],
],
],
];
и авторизованный пользователь имеет разрешение permissionProdView, но любой экшен выдает 403 Forbidden. Если в roles прописать '@' (любой авторизованный пользователь), то доступ есть, но опять же появляется проблема в вызове метода can(). Такой код:
Yii::$app->user->can('permissionProdView')
всегда возвращает false, вне зависимости от того, есть у пользователя это разрешение или же нет.
Если же проверить checkAccess() напрямую, то все работает:
Yii::$app->authManager->checkAccess(Yii::$app->user->identity->getId(), 'permissionProdView')
В этом случае, если пользователь имеет нужное разрешение - возвращается true, если нет - false (чего я и ожидаю).
Подскажите, что я делаю не так.