Понимаю, что тема старая, но для новичков, как я, до сих пор актуальная. В моём случае проблема заключалась в том, что я вместе с созданием ролей и привелегий сразу попытался прикрутить туда ещё и правила, в которых с самого начала накосячил и забыл про них. Как только закомментировал правила (ruls) - всё заработало.
<?php
namespace console\controllers;
use Yii;
use yii\console\Controller;
use common\components\rbac\UserRoleRule;
class RbacController extends Controller
{
public function actionInit()
{
$auth = Yii::$app->authManager;
$auth->removeAll(); //удаляем старые данные
//Создадим для примера права для доступа к админке
// добавляем разрешение "enterInFrontend"
$enterInFrontend = $auth->createPermission('enterInFrontend');
$enterInFrontend->description = 'Вход в frontend';
$auth->add($enterInFrontend);
// добавляем разрешение "enterInBackend"
$enterInBackend = $auth->createPermission('enterInBackend');
$enterInBackend->description = 'Вход в админку';
$auth->add($enterInBackend);
// добавляем разрешение "adminControl"
$adminControl = $auth->createPermission('adminControl');
$adminControl->description = 'Контроль за модераторами';
$auth->add($adminControl);
//Включаем наш обработчик
// $rule = new UserRoleRule();
// $auth->add($rule);
//Добавляем роли
$simpleUser = $auth->createRole('simpleUser');
$simpleUser->description = 'роль: Пользователь';
// $simpleUser->ruleName = $rule->name;
$auth->add($simpleUser);
$moder = $auth->createRole('moder');
$moder->description = 'роль: Модератор';
// $moder->ruleName = $rule->name;
$auth->add($moder);
$admin = $auth->createRole('admin');
$admin->description = 'роль: Администратор';
// $admin->ruleName = $rule->name;
$auth->add($admin);
//Добавляем потомков
$auth->addChild($simpleUser, $enterInFrontend);
$auth->addChild($moder, $enterInBackend);
$auth->addChild($admin, $adminControl);
$auth->addChild($moder, $simpleUser);
$auth->addChild($admin, $moder);
}
Внимательность - наше всё!
Теперь будем разбираться зачем нужны правила.