anton_reut
@anton_reut
Начинающий веб-разработчик

Yii access — обязательно ли указывать список экшенов в 'Only'?

Пробую контроль доступа (фильтр). Есть Контроллер Blog и у него экшены: index, add. При вот таком коде почему-то в любом случае (и при blog/index и blog/add) кидает на login хотя в списке указан только экшен add:
public function behaviors()
	{
	    return [
	        'access' => [
	            'class' => AccessControl::className(),
	            'rules' => [
	                [
	                    'actions' => ['add'],
	                    'allow' => true,
	                    'roles' => ['admin'],
	                ],
	            ],
	        ]
	    ];
	}

А если добавить Only то уже index нормально доступен, а add нет:
public function behaviors()
	{
	    return [
	        'access' => [
	            'class' => AccessControl::className(),
	            'only' => ['add'],
	            'rules' => [
	                [
	                    'actions' => ['add'],
	                    'allow' => true,
	                    'roles' => ['admin'],
	                ],
	            ],
	        ]
	    ];
	}

Получается строку Only надо всегда в любом случае прописывать? Хотя во многих примерах кода этого Only нет. Пример где нет и норм работает у человека:
5de03022dab94456591589.png
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ar2rsoft
PHP-developer
Можно поменять порядок применения правил, с "все что не разрешено - запрещено", на "все что не запрещено - разрешено". Посмотрите доку к AccessControl
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы