Есть два модуля: worker и admin, в которых распределен функционал в зависимости от роли.
Задача:
Реализовать разделения доступа к модулям в зависимости от роли.
К действиям модуля "admin" получают пользователи с ролью "admin", к действиям "worker" все авторизованные пользователи.
Моя реализация:
Попробовал реализовать самостоятельно, но столкнулся с проблемой.
Чтобы для каждого контроллера не прописывать настройки доступа в behaviors(), решил определить их на уровне настроек модуля. Выставил следующие настройки в методе init() для модулей:
Admin(\app\modules\admin\Module):
Код: Выделить всё
Yii::configure(Yii::$app, [
'components' => [
'as access' => [
'class' => 'yii\filters\AccessControl',
'rules' => [
[
'allow' => true,
'roles' => [Roles::ROLE_ADMIN],
],
],
],
]
]);
Worker(\app\modules\worker\Module)
Код: Выделить всё
Yii::configure(Yii::$app, [
'components' => [
'as access' => [
'class' => 'yii\filters\AccessControl',
'rules' => [
[
'allow' => true,
'roles' => ['@'],
],
],
],
]]
);
Но настройки не сработали, даже будучи неавторизованным можно получить доступ к действиям модуля.