есть две таблицы: Пользователи и Админы
При авторизации выбирается кто входит Админ или просто пользователь. Ну и соответственно проверяется по той или иной таблице.
Не могу понять как прикрутить RBAC, вернее тут нужно два отдельных делать
Сделал следующее
Код: Выделить всё
'authManager_adm' => [
'class' => 'app\component\PhpAuthManager',
'itemFile' => '@app/rbac/adm/items.php',
'assignmentFile' => '@app/rbac/adm/assignments.php',
'ruleFile' => '@app/rbac/adm/rules.php'
],
'authManager_doctor' => [
'class' => 'app\component\PhpAuthManager',
'itemFile' => '@app/rbac/doctor/items.php',
'assignmentFile' => '@app/rbac/doctor/assignments.php',
'ruleFile' => '@app/rbac/doctor/rules.php'
],
Но после запуска выкинуло исключение
и пришлось добавитьCall to a member function checkAccess() on a non-object
Код: Выделить всё
'authManager' => [
'class' => 'app\component\PhpAuthManager',
'itemFile' => '@app/rbac/items.php',
'assignmentFile' => '@app/rbac/assignments.php',
'ruleFile' => '@app/rbac/rules.php'
],
Код: Выделить всё
if (!\Yii::$app->user->can('adm')) {
Я понимаю от чего это происходит. Проверка делается на основе authManager, а нужно authManager_adm. Но как заставить работать тот или иной менеджер?
Или я совсем не в ту сторону пошел? может есть какие другие решения.
Заранее благодарен.
--
на всякий случай код PhpAuthManager
Код: Выделить всё
namespace app\component;
use Yii;
class PhpAuthManager extends \yii\rbac\PhpManager
{
private $_roles;
public function init()
{
parent::init();
if (\Yii::$app->user->isGuest) {
return;
}
}
}