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 (чего я и ожидаю).

Подскажите, что я делаю не так.


Ответы (0 шт):