Yii2 Access Control. Авторизация в Yii2. Часть 2

Yii2 Access Control. Авторизация в Yii2

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы с вами продолжим работать с фильтром контроля доступа – Yii2 Access Control Filter (ACF). В частности, мы рассмотрим некоторые другие его свойства.

В предыдущей статье мы с вами познакомились с фильтром контроля доступа – поведением, благодаря которому мы можем ограничивать доступ к контроллерам и действиям. В частности, мы с его помощью легко ограничили доступ к модулю админской части и теперь туда может попасть только авторизованный пользователь. Однако ACF имеет и ряд дополнительных свойств, которых мы пока что не касались. Давайте пройдемся по ним.

Для дальнейшей работы давайте добавим в дефолтный контроллер админки дополнительный экшен, к примеру User:

Также создадим еще один контроллер – Test:

Yii2 Access Control. Авторизация в Yii2

Само собой, создадим все необходимые для них виды. Сейчас доступ по умолчанию ко всем контроллерам модуля admin закрыт и при обращении к любому из них происходит редирект на страницу авторизации.

Но что если мы захотим открыть доступ к некоторым из контроллеров модуля? Например, я хочу, чтобы доступ к контроллеру Test был открыт, а доступ к прочим контроллерам продолжал оставаться закрытым. Сделать это поможет свойство controllers. Давайте добавим еще одно правило для поведения ACF:

Yii2 Access Control. Авторизация в Yii2

Этим правилом мы разрешили доступ ко всем действиям контроллера Test модуля Admin. Обратите внимание, в массиве controllers мы перечисляем ID контроллеров. При этом, если это контроллеры модуля, тогда мы должны указать и ID модуля.

Идем дальше. А что если мы хотим разрешить доступ не ко всему контроллеру, а только к конкретным его действиям? В этом случае мы можем обратиться к свойству actions, в массиве которого перечислим все необходимые действия. Примерно так мы можем открыть доступ гостям к экшену User контроллера Default:

Yii2 Access Control. Авторизация в Yii2

Благодаря набору этих правил мы разрешили доступ гостям ко всем действиям контроллера Test, а также к действию User контроллера Default. Доступ ко всем прочим частям модуля Admin будет по-прежнему ограничен.

Замечательные возможности, не так ли? Однако, это далеко не все возможности. В следующей статье мы рассмотрим еще некоторые свойства фильтра, которые, возможно, пригодятся вам в работе.

А на сегодня все. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Метки:

Похожие статьи:

Комментарии Вконтакте: