Как оставить допуск только для Админа и МД.

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
Аватара пользователя
qwerty444
Сообщения: 78
Зарегистрирован: 2016.12.27, 07:32
Откуда: Россия
Контактная информация:

Как оставить допуск только для Админа и МД.

Сообщение qwerty444 »

Доброго времени,
У меня Rbac работает,- но допуск к нему имеют все зарегистрированные users .
Подскажите как закрыть им допуск и оставить его открытым только для админа и МД?
Если нужна ещё какая инфа,файлы я предоставлю.
Вот код.

Код: Выделить всё

  public function behaviors() {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'actions' => ['login', 'error'],
                        'allow' => true,
                    ],
                    [
                        'actions' => ['logout', 'index'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                    [
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
            
            'verbs' => [
                'class' => VerbFilter::class,
                'actions' => [
                    'activemultiple'   => ['post'],
                    'deactivemultiple' => ['post'],
                    'delete'           => ['post'],
                    'deletemultiple'   => ['post'],
                    'confirm'          => ['post'],
                    'resend-password'  => ['post'],
                    'block'            => ['post'],
                    'switch'           => ['post'],
                ],
            ]
        ];
    }
//

Код: Выделить всё

'modules' =>  [
.......
        // Yii2 User
        'user' => [
            'class' => 'dektrium\user\Module',
            'adminPermission' => 'role, permission',
            'admins'=>['admin'],
            'enableUnconfirmedLogin' => true,//boolean
            'confirmWithin' => 21600,//integer
            'cost' => 12, //integer
],
.........
],
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Как оставить допуск только для Админа и МД.

Сообщение SiZE »

правила идут попорядку
Аватара пользователя
qwerty444
Сообщения: 78
Зарегистрирован: 2016.12.27, 07:32
Откуда: Россия
Контактная информация:

Re: Как оставить допуск только для Админа и МД.

Сообщение qwerty444 »

можно как то по подробней.
Аватара пользователя
qwerty444
Сообщения: 78
Зарегистрирован: 2016.12.27, 07:32
Откуда: Россия
Контактная информация:

Re: Как оставить допуск только для Админа и МД.

Сообщение qwerty444 »

Да уж сложная штука этот рбак.
сейчас такая ошибка
.
..
У вас неправильная конфигурация authManager
1. в /var/www/example.com/basic/vendor/dektrium/yii2-rbac/Bootstrap.php в строке 49

if ( $ this -> checkRbacModuleInstalled ( $ app )) {
$ authManager = $ app -> get ( 'authManager' , false );

if (! $ authManager ) {
$ app -> set ( 'authManager' , [
'class' => DbManager :: className (),
]);
} else if (! ( $ authManager instanceof ManagerInterface )) {
throw new InvalidConfigException ( «У вас неправильная конфигурация authManager» );
}

// если установлено расширение dektrium / user, скопируйте список администраторов отсюда,
если ( $ this -> checkUserModuleInstalled ( $ app ) && $ app instanceof WebApplication) {
$ app -> getModule ( 'rbac' ) -> admins = $ app - > getModule ( 'user' ) -> admins;
}
}
}
..
dektrium / user установлен .но непонятно где именно выполнять этот код.

Код: Выделить всё

if ($this->checkUserModuleInstalled($app) && $app instanceof WebApplication) {
                $app->getModule('rbac')->admins = $app->getModule('user')->admins;
            }
Аватара пользователя
qwerty444
Сообщения: 78
Зарегистрирован: 2016.12.27, 07:32
Откуда: Россия
Контактная информация:

Re: Как оставить допуск только для Админа и МД.

Сообщение qwerty444 »

Всё разобрался дописал пару строчек
'ruleConfig' => [
'class' => AccessRule::className(),

и вместо собачек прописал того кому можно заходить,
осталось только создать правила.
Ответить