В общем, в конфиге подключаю модуль:
'authManager' => [
'class' => 'yii\rbac\PhpManager',
'authFile' => '@app/config/rbac.php'
],
В rbac.php прописываю роли, ну для примера пусть будет одна роль админа:
<?php
return array (
'items' =>array(
'admin'=>array (
'type'=>1, //где вообще почитать про все доступные типы этих ролей? Или что эта за единица?
'name'=>'admin',
'ruleName' => 'admin'
)
)
);
А вот дальше я затрудняюсь в реализации. Как присвоить эту роль определенным юзерам, у которых в бд в столбце role написано admin, чтобы потом можно было работать и проверять этим условием:
if (Yii::$app->user->can('admin')) {
//делаем что-то, доступное только админу
}
Собственно, как? Документацию прочитал, но вот не догоняю несколько моментов:
1. Как это сделать? Взять данные из БД я могу, например в переменную $role. Дальше что?
if ($role == 'admin') {
//присвоить этому юзеру админские права раз и на всегда, но какими API это делается?
}
2. Где это присваивать и когда? Не при запуске же приложения каждый раз же это делать или в контроллере.
3. А что будет, если я захочу юзера прав решить, все надо переназначить или есть какой функционал, позволяющий делать это автоматически, если в бд иное значение?
В общем, есть ли какой-то способ сделать всё по фэн шую, задать юзерам нужные роли исходя из данных в бд?