Главная/Статьи/YII2: Запретить создание материалов в CRUD не авторизованным пользователям (Rbac)
Yii2

YII2: Запретить создание материалов в CRUD не авторизованным пользователям (Rbac)

Способ ограничения доступа к функциям создания, редактирования и удаления материалов в 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' => ['@'] — доступ только авторизованным пользователям. ['@'] обозначает авторизованного пользователя, а ['?'] — гостя.