yii rbac/init Error unknow command вот фигния вылазиет в консоли Вот тут уже создавал и в consol/config/main и common/config/main и все равно это же ошибка Код (PHP): <?php return [ 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', 'components' => [ 'authManager' => [ 'class' => 'yii\rbac\PhpManager', 'defaultRoles' => ['user','pred','admin'], //здесь прописываем роли //зададим куда будут сохраняться наши файлы конфигураций RBAC 'itemFile' => '@common/components/rbac/items.php', 'assignmentFile' => '@common/components/rbac/assignments.php', 'ruleFile' => '@common/components/rbac/rules.php' ], 'cache' => [ 'class' => 'yii\caching\FileCache', ], ], ];
не внимательно читали. Ещё консольный контроллер спрограммить надо: http://www.yiiframework.com/doc-2.0/guide-security-authoriz ... -rbac-data
Чего установили? Покажите контроллер, раз. Два, что значит "не работает"? Ошибки пишет? Ещё чегой-нибудь?
Это файл PhpManager.php он находится в папке консоль\контролер Код (PHP): <?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(); //удаляем старые данные //Создадим для примера права для доступа к админке $dashboard = $auth->createPermission('dashboard'); $dashboard->description = 'Админ панель'; $auth->add($dashboard); //Включаем наш обработчик $rule = new UserRoleRule(); $auth->add($rule); //Добавляем роли $user = $auth->createRole('user'); $user->description = 'Пользователь'; $user->ruleName = $rule->name; $auth->add($user); $pred = $auth->createRole('pred'); $pred->description = 'Предпрениматель'; $pred->ruleName = $rule->name; $auth->add($pred); //Добавляем потомков $auth->addChild($pred, $user); $auth->addChild($pred, $dashboard); $admin = $auth->createRole('admin'); $admin->description = 'Администратор'; $admin->ruleName = $rule->name; $auth->add($admin); $auth->addChild($admin, $pred); } } se Вот этот файл UserRoleRole.php он находится в common/componennts/rbac Код (PHP): <?php namespace common\components\rbac; use Yii; use yii\rbac\Rule; use yii\helpers\ArrayHelper; use common\models\User; class UserRoleRule extends Rule { public $name = 'userRole'; public function execute($user, $item, $params) { //Получаем массив пользователя из базы $user = ArrayHelper::getValue($params, 'user', User::findOne($user)); if ($user) { $role = $user->role; //Значение из поля role базы данных if ($item->name === 'admin') { return $role == User::ROLE_ADMIN; } elseif ($item->name === 'pred') { //moder является потомком admin, который получает его права return $role == User::ROLE_ADMIN || $role == User::ROLE_PRED; } elseif ($item->name === 'user') { return $role == User::ROLE_ADMIN || $role == User::ROLEPRED || $role == User::ROLE_USER; } } return false; } } но и это я писал Код (PHP): <?php return [ 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', 'components' => [ 'authManager' => [ 'class' => 'yii\rbac\PhpManager', 'defaultRoles' => ['user','pred','admin'], //здесь прописываем роли //зададим куда будут сохраняться наши файлы конфигураций RBAC 'itemFile' => '@common/components/rbac/items.php', 'assignmentFile' => '@common/components/rbac/assignments.php', 'ruleFile' => '@common/components/rbac/rules.php' ], 'cache' => [ 'class' => 'yii\caching\FileCache', ], ], ]; по сути все по инструкций я даже видеоролик находил, но в косяке
По инструкции ты врядли чему-то научишься. Максимум копировать. В этой инструкции класс RbacController лежит в файле RbacController.php, а у тебя нет. Имя класса должно совпадать с именем файла. Может тебе с изучения основ ООП начать?
Тогда с основ Yii2, который придерживается стандартов PSR, и поэтому имя класса и имя файла, в котором он лежит, всегда обязано совпадать.