Error: Call to a member function getRoles() on null
comes from: yii2-admin\models\searchs\AuthItem.php
on line 75:
public function search($params)
{
/* @var \yiibac\Manager $authManager */
$authManager = Configs::authManager();
if ($this->type == Item::TYPE_ROLE) {
here-> $items = $authManager->getRoles();
} else {
This is because of yii2-admin\components\configs.php:
on line 148:
public static function instance()
{
if (self::$_instance === null) {
$type = ArrayHelper::getValue(Yii::$app->params, 'mdm.admin.configs', []);
if (is_array($type) && !isset($type['class'])) {
$type['class'] = static::className();
}
return self::$_instance = Yii::createObject($type);
}
here-> return self::$_instance;
}
it returns a config object where 'authManager' is null
According to: Yii2 RBAC DbManager error Call to a member function getRole() on null
and
https://www.yiiframework.com/doc/guide/2.0/en/security-authorization#configuring-rbac-manager
All that is necessary for the yii2-advanced-app is to add the following:
'authManager' => [
'class' => 'common\components\extendedbac\DbManager',
'cache' => 'cache',
],
to common\config\main.php under components array
That was already there and does not seem to effect the config from rbac. In addition I have tried adding authManager to console, frontend and backend config files with no effect.
Expected result: 'authManager' => 'DbManager or something'
Actual result: 'authManager' => null
The yii2 rbac config file loads in the db connection correctly, but authManager is always null.
This is a problem when using the yii2admin rbac management extention, but not when using yii2-advanced-app in general as the advanced app uses \Yii::$app->authManager
and not yii2 rbac Configs::authManager
Any help or pointers would be greatly appreciated. Thank you.