Задать вопрос
@BloodVIRUS

Как сделать в одном контроллере разные права на action?

Здравствуйте! Разбираюсь в Yii2, и добрался до разделения прав. Нашел и разобрался с RBAC. Удобная штука, очень. Но все примеры что я находил - они показывают как в контроллере для группы пользователей разрешить доступ к каким-то action. Например вот:

'actions' => ['index','delete','update'],
                    'allow' => true,
                    'roles' => ['root'],


В этом случае у меня доступ к разрешенным функциям имеют только те юзеры, которые имеют роль root. А так получилось что все остальные action в контроллере вообще никому не доступны..

А если у меня в одном контроллере нужно разграничить доступы на root, users и autors?
Т.е для рутов можно actionCreateCategory, но только для рутов. Для авторов доступны actionCreatePost, а для юзеров доступны только actionCommentPost. Как это все настроить в одном контроллере, не раскидывая это все по разным?
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
t-alexashka
@t-alexashka
Сразу пишу legacy код
rules это массив с правилами. добавляйте их сколько хотите. например:

//...
'rules' => [
	[
		'allow' => true,
		'actions' => ['action1',],
		'roles' => ['root', ],
	],
	[
		'allow' => true,
		'actions' => ['action2', 'actionN', ],
		'roles' => ['admin', '?', '@'],
	],
	//...
],
//...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽