没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\filters\AccessControl

继承yii\filters\AccessControl » yii\base\ActionFilter » yii\base\Behavior » yii\base\BaseObject
实现yii\base\Configurable
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/filters/AccessControl.php

AccessControl 基于一组规则提供简单的访问控制。

AccessControl 是一个操作筛选器。它将检查其 $rules 查找 匹配当前上下文变量(例如用户IIp 地址、用户角色)的第一条规则。 匹配规则将指定是允许还是拒绝访问所请求的控制器 操作。如果没有匹配的规则,访问将被拒绝。

要使用 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 在拒绝当前用户访问时将调用的回调。 如果没有匹配的规则或者是符合以下条件的规则,则会出现这种情况 $allow 设置成 false 匹配。 如果未设置,denyAccess() 将会被调用。 回调的签名应如下所示: `php function ($rule, $action) ` 其中 $rule 是拒绝用户的规则,$action 是当前 action 对象。 如果访问被拒绝则 $rule 可以为 null 因为所有规则都不匹配。 yii\filters\AccessControl
$except array List of action IDs that this filter should not apply to. yii\base\ActionFilter
$only array List of action IDs that this filter should apply to. yii\base\ActionFilter
$owner yii\base\Component|null The owner of this behavior yii\base\Behavior
$ruleConfig array 访问规则的默认配置。单个规则配置 在配置规则的相同属性时 via $rules 将优先。 yii\filters\AccessControl
$rules array 访问规则对象的列表或用于创建规则对象的配置数组。 如果规则是通过配置数组指定的,它将首先与 $ruleConfig 合并 在用于创建规则对象之前。 yii\filters\AccessControl
$user yii\web\User|array|string|false 表示用户应用程序组件的身份验证状态或ID的用户对象。 从版本 2. yii\filters\AccessControl

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\BaseObject
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of an object property. yii\base\BaseObject
__isset() Checks if a property is set, i.e. defined and not null. yii\base\BaseObject
__set() Sets value of an object property. yii\base\BaseObject
__unset() Sets an object property to null. yii\base\BaseObject
afterAction() 执行动作后立即调用此方法。 您可以覆盖此方法以对操作执行一些后处理。 yii\base\ActionFilter
afterFilter() yii\base\ActionFilter
attach() Attaches the behavior object to the component. yii\base\Behavior
beforeAction() 此方法是在执行操作之前(在所有可能的筛选器之后。)调用 您可以重写此方法以便为操作做最后一刻的准备。 yii\filters\AccessControl
beforeFilter() yii\base\ActionFilter
canGetProperty() Returns a value indicating whether a property can be read. yii\base\BaseObject
canSetProperty() Returns a value indicating whether a property can be set. yii\base\BaseObject
className() Returns the fully qualified name of this class. yii\base\BaseObject
detach() Detaches the behavior object from the component. yii\base\Behavior
events() Declares event handlers for the $owner's events. yii\base\Behavior
hasMethod() Returns a value indicating whether a method is defined. yii\base\BaseObject
hasProperty() Returns a value indicating whether a property is defined. yii\base\BaseObject
init() 通过从配置实例化规则对象来初始化 $rules 数组。 yii\filters\AccessControl

受保护的方法

隐藏继承的方法

方法描述被定义在
denyAccess() 拒绝用户访问。 如果用户是访客默认实现会将用户重定向到登录页面; 如果用户已登录,则将引发 403 HTTP 异常。 yii\filters\AccessControl
getActionId() 通过将 yii\base\Action::$uniqueId 转换为相对于模块的 ID 来返回动作 ID。 yii\base\ActionFilter
isActive() 返回一个值,该值指示过滤器对于给定操作是否处于活动状态。 yii\base\ActionFilter

属性详情

$denyCallback 公共 属性

在拒绝当前用户访问时将调用的回调。 如果没有匹配的规则或者是符合以下条件的规则,则会出现这种情况 $allow 设置成 false 匹配。 如果未设置,denyAccess() 将会被调用。

回调的签名应如下所示:

function ($rule, $action)

其中 $rule 是拒绝用户的规则,$action 是当前 action 对象。 如果访问被拒绝则 $rule 可以为 null 因为所有规则都不匹配。

public callable $denyCallback null
$ruleConfig 公共 属性

访问规则的默认配置。单个规则配置 在配置规则的相同属性时 via $rules 将优先。

public array $ruleConfig = ['class' => 'yii\filters\AccessRule']
$rules 公共 属性

访问规则对象的列表或用于创建规则对象的配置数组。 如果规则是通过配置数组指定的,它将首先与 $ruleConfig 合并 在用于创建规则对象之前。

参见 [[规则配置]].

public array $rules = []
$user 公共 属性

表示用户应用程序组件的身份验证状态或ID的用户对象。 从版本 2.0.2 开始,也可以是用于创建对象的配置数组。 从版本 2.0.12 开始,你可以将其设置为 “false”,以显式地为筛选器关闭此组件支持。

方法详情

beforeAction() 公共 方法

此方法是在执行操作之前(在所有可能的筛选器之后。)调用 您可以重写此方法以便为操作做最后一刻的准备。

public boolean beforeAction($action)
$action yii\base\Action

要执行的操作。

return boolean

是否应继续执行该操作。

denyAccess() 受保护 方法

拒绝用户访问。 如果用户是访客默认实现会将用户重定向到登录页面; 如果用户已登录,则将引发 403 HTTP 异常。

protected void denyAccess($user)
$user yii\web\User|false

在分离用户组件的情况下当前用户或布尔值 false

throws yii\web\ForbiddenHttpException

如果用户已经登录或者已分离用户组件。

init() 公共 方法

通过从配置实例化规则对象来初始化 $rules 数组。

public void init()