Способ ограничения доступа к функциям создания, редактирования и удаления материалов в CRUD-приложении на Yii2. Реализация занимает 7–10 строк кода и около 2 минут времени.
Шаг 1: Подключение необходимого класса
В начало контроллера CRUD нужно добавить импорт контроля прав доступа:
use yii\\filters\\AccessControl;
Шаг 2: Добавление кода в метод behaviors()
В методе behaviors() контроллера, после существующей конфигурации VerbFilter, вставить следующий блок:
'access' => [
'class' => AccessControl::className(),
'only' => ['create', 'update', 'delete'],
'rules' => [
[
'actions' => ['create', 'update', 'delete'],
'allow' => true,
'roles' => ['@'],
],
],
],
Объяснение параметров
'only' => ['create','update','delete'] — контролируются только операции создания, редактирования и удаления.
'allow' => true — разрешение на выполнение.
'roles' => ['@'] — доступ только авторизованным пользователям. ['@'] обозначает авторизованного пользователя, а ['?'] — гостя.