Разный defaultRoute в зависимости от роли

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
azz
Сообщения: 197
Зарегистрирован: 2016.07.06, 17:20

Разный defaultRoute в зависимости от роли

Сообщение azz »

Есть несколько ролей, хотелось бы каждой из них назначит свой defaultRoute, по типу

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

if ($auth->can('role.admin')) {
    'defaultRoute' => 'admin/index',
}
elseif ($auth->can('role.user')) {
    'defaultRoute' => 'user/index',
}
else {
    'defaultRoute' => 'guest/index',
}
Кроме того хочется что бы и урл правило на главную страницу менялось в зависимости от роли. Т.е. url главной у всех одинаков (/), а контроллер/экшен разный.

Как бы такое сделать?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Разный defaultRoute в зависимости от роли

Сообщение yiijeka »

Всех перебрасывать в один action, а дальше, в этом action, в зависимости от роли, запускать сервисы, которые у вас в 'admin/index', 'user/index', и 'guest/index'. Или делать в / редирект на нужный URL
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Разный defaultRoute в зависимости от роли

Сообщение maleks »

Можно ж не только из конфига устанавливать значения св-в объекту приложения.
В обработчике события beforeRequest например тоже можно.

Для правил урд манагера аналогично, можно его переопределить и в его init добавить свое динамическое правило
Yii2 universal module sceleton - for basic and advanced templates
Ответить