@BloodVIRUS

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

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

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


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

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

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

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

Войти через центр авторизации
Похожие вопросы