Класс yii\filters\AccessControl
| Наследование | yii\filters\AccessControl » yii\base\ActionFilter » yii\base\Behavior » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/filters/AccessControl.php |
AccessControl предоставляет простую систему контроля доступа на основе набора правил.
AccessControl является фильтром действий. Он проверяет свои $rules, чтобы найти первое правило, соответствующее текущим переменным контекста (например, IP-адрес пользователя, роль пользователя). Соответствующее правило определит, разрешить или запретить доступ к запрошенному действию контроллера. Если ни одно правило не соответствует, доступ будет запрещён.
Чтобы использовать AccessControl, объявите его в методе behaviors() вашего класса контроллера. Например, следующие объявления позволят аутентифицированным пользователям получить доступ к действиям "create" и "update" и запретят доступ всем остальным пользователям к этим двум действиям.
public function behaviors()
{
return [
'access' => [
'class' => \yii\filters\AccessControl::className(),
'only' => ['create', 'update'],
'rules' => [
// deny all POST requests
[
'allow' => false,
'verbs' => ['POST']
],
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
// everything else is denied
],
],
];
}
Публичные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $denyCallback | callable | Обратный вызов, который будет вызван, если доступ к текущему пользователю запрещён. | yii\filters\AccessControl |
| $except | массив | Список идентификаторов действий, к которым данный фильтр не должен применяться. | yii\base\ActionFilter |
| $only | массив | Список идентификаторов действий, к которым данный фильтр должен применяться. | yii\base\ActionFilter |
| $owner | yii\base\Component|null | Владелец данного поведения | yii\base\Behavior |
| $ruleConfig | массив | Конфигурация по умолчанию для правил доступа. | yii\filters\AccessControl |
| $rules | массив | Список объектов правил доступа или конфигурационных массивов для создания объектов правил. | yii\filters\AccessControl |
| $user | yii\web\User|массив|строка|false | Объект пользователя, представляющий статус аутентификации или идентификатор компоненты приложения пользователя. | yii\filters\AccessControl |
Публичные методы
| Метод | Описание | Определено |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| afterAction() | Этот метод вызывается сразу после выполнения действия. | yii\base\ActionFilter |
| afterFilter() | yii\base\ActionFilter | |
| attach() | Прикрепляет объект поведения к компоненту. | yii\base\Behavior |
| beforeAction() | Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить последнюю подготовку к действию. | yii\filters\AccessControl |
| beforeFilter() | yii\base\ActionFilter | |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detach() | Отсоединяет объект поведения от компонента. | yii\base\Behavior |
| events() | Объявляет обработчики событий для событий $owner. | yii\base\Behavior |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует массив $rules, создавая объекты правил из конфигураций. | yii\filters\AccessControl |
Защищённые методы
| Метод | Описание | Определено |
|---|---|---|
| denyAccess() | Запрещает доступ пользователю. | yii\filters\AccessControl |
| getActionId() | Возвращает идентификатор действия, преобразуя yii\base\Action::$uniqueId в идентификатор, относящийся к модулю. | yii\base\ActionFilter |
| isActive() | Возвращает значение, указывающее, активен ли фильтр для данного действия. | yii\base\ActionFilter |
Подробное описание свойств
$denyCallback публичное свойство
Обратный вызов, который будет вызван, если доступ к текущему пользователю запрещён. Если не задано, будет вызван denyAccess().
Подпись обратного вызова должна быть следующей:
function ($rule, $action)
где $rule — правило, запрещающее доступ пользователю, и $action — текущий объект action. $rule может быть null в случае запрета доступа из-за отсутствия соответствия ни одному из правил.
public callable $denyCallback = null
$ruleConfig публичное свойство
Конфигурация по умолчанию для правил доступа. Индивидуальные конфигурации правил, указанные через $rules, будут иметь приоритет, когда одинаковое свойство правила настроено.
public array $ruleConfig = ['class' => 'yii\filters\AccessRule']
$rules публичное свойство
Список объектов правил доступа или конфигурационных массивов для создания объектов правил. Если правило задано через конфигурационный массив, оно будет сначала объединено с $ruleConfig, прежде чем будет использоваться для создания объекта правила.
См. также $ruleConfig.
public array $rules = []
$user публичное свойство
Объект пользователя, представляющий статус аутентификации или идентификатор компоненты приложения пользователя. Начиная с версии 2.0.2, это также может быть конфигурационный массив для создания объекта. Начиная с версии 2.0.12, вы можете установить его в значение false чтобы явно отключить поддержку этого компонента для фильтра.
public yii\web\User|array|string|false $user = 'user'
Подробное описание методов
beforeAction() public method
Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод для выполнения последней подготовки к выполнению действия.
| public boolean beforeAction ( $action ) | ||
|---|---|---|
| $action | yii\base\Action |
Действие, которое должно быть выполнено. |
| return | boolean |
Должно ли действие продолжить выполняться. |
denyAccess() protected method
Отказывает в доступе пользователю.
По умолчанию, если пользователь гость, он будет перенаправлен на страницу входа; если пользователь уже авторизован, будет брошено исключение HTTP 403.
| protected void denyAccess ( $user ) | ||
|---|---|---|
| $user | yii\web\User|false |
Текущий пользователь или логическое значение |
| throws | yii\web\ForbiddenHttpException |
если пользователь уже авторизован или в случае открепленного компонента User. |
init() public method
Инициализирует массив $rules, создавая объекты правил из конфигураций.
| public void init ( ) |
|---|
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-filters-accesscontrol.html