没有命名空间的类 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\AccessRule

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

此类表示由 yii\filters\AccessControl 操作筛选器定义的访问规则。

公共属性

隐藏继承的属性

属性类型描述被定义在
$actions array 应用此规则的操作 IDs 的数组列表。比较区分大小写。 如果未设置或为空,则表示此规则适用于所有操作。 yii\filters\AccessRule
$allow boolean 无论这是 'allow' 规则还是 'deny' 规则。 yii\filters\AccessRule
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$controllers array 应用此规则的控制器 IDs 的列表。 比较使用 yii\base\Controller::$uniqueId,因此每个控制器 ID 都带有前缀 使用模块 ID (如果有的话)。对于应用程序中的 product 控制器, 您可以指定此属性类似于 ['product'] 如果该控制器位于 shop 模块, 则将是 ['shop/product']。 比较区分大小写。 如果未设置或为空,则表示此规则适用于所有控制器。 自版本 2. yii\filters\AccessRule
$denyCallback callable 在此规则确定应拒绝对 当前操作的访问时将调用的回调。当此规则匹配且 $allow 设置为 false 时就会出现这种情况。 如果未设置,则行为将由 yii\filters\AccessControl, 或者使用 yii\filters\AccessControl::denyAccess()yii\filters\AccessControl::$denyCallback,如果已设置。 回调的签名应如下所示: `php function ($rule, $action) ` 其中 $rule 是此规则,$action 是当前 action 对象。 yii\filters\AccessRule
$ips array 此规则应用于的用户 IP 地址列表。IP 地址 的末尾可以包含通配符* ,以便与前缀相同的 IP 地址相匹配。 例如,'192. yii\filters\AccessRule
$matchCallback callable 将被调用以确定是否应用规则的回调。 回调的签名应如下所示: `php function ($rule, $action) ` 其中 $rule 是此规则,$action 是当前 action 对象。 回调应返回一个布尔值,指示是否应用此规则。 yii\filters\AccessRule
$permissions array 适用此规则的 RBAC (基于角色的访问控制)权限列表。 将调用 yii\web\User::can() 检查访问权限。 如果此属性未设置或为空,则表示无论权限如何此规则都适用。 yii\filters\AccessRule
$roleParams array|Closure 传递给 yii\web\User::can() 函数的参数 用于评估 $roles 中的用户权限。 如果这是一个数组,它将直接传递给 yii\web\User::can()。例如 从当前请求传递 ID,您可以使用以下内容: `php ['postId' => Yii::$app->request->get('id')] 你还可以指定返回数组的闭包。只有在需要数组值的情况下, 才能使用该值来计算数组值, 例如当需要加载模型时 如下面的代码所示: php 'rules' => [ [ 'allow' => true, 'actions' => ['update'], 'roles' => ['updatePost'], 'roleParams' => function($rule) { return ['post' => Post::findOne(Yii::$app->request->get('id'))]; }, ], ], `yii\filters\AccessRule 实例的引用将作为第一个参数传递给闭包。 yii\filters\AccessRule
$roles array 此规则适用的角色列表(需要正确配置的用户组件)。 识别两个特殊角色,并通过 yii\web\User::$isGuest 检查它们: - ?: 匹配来宾用户(尚未通过身份验证) - @: 匹配经过身份验证的用户 如果使用 RBAC (Role-Based Access Control),你还可以指定角色名称。 在这种情况下,将调用 yii\web\User::can() 检查访问权限。 请注意最好检查权限。 如果此属性未设置或为空,则表示无论角色如何,此规则都适用。 yii\filters\AccessRule
$verbs array 此规则适用的请求方法(例如 GET, POST)的列表。 如果未设置或为空,这意味着此规则适用于所有请求方法。 yii\filters\AccessRule

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
allows() 检查是否允许 Web 用户执行指定的操作。 yii\filters\AccessRule
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\base\BaseObject
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
trigger() Triggers an event. yii\base\Component

属性详情

$actions 公共 属性

应用此规则的操作 IDs 的数组列表。比较区分大小写。 如果未设置或为空,则表示此规则适用于所有操作。

public array $actions null
$allow 公共 属性

无论这是 'allow' 规则还是 'deny' 规则。

public boolean $allow null
$controllers 公共 属性

应用此规则的控制器 IDs 的列表。

比较使用 yii\base\Controller::$uniqueId,因此每个控制器 ID 都带有前缀 使用模块 ID (如果有的话)。对于应用程序中的 product 控制器, 您可以指定此属性类似于 ['product'] 如果该控制器位于 shop 模块, 则将是 ['shop/product']

比较区分大小写。

如果未设置或为空,则表示此规则适用于所有控制器。

自版本 2.0.12 起可以将控制器ID指定为通配符,例如 module/*

public array $controllers null
$denyCallback 公共 属性

在此规则确定应拒绝对 当前操作的访问时将调用的回调。当此规则匹配且 $allow 设置为 false 时就会出现这种情况。

如果未设置,则行为将由 yii\filters\AccessControl, 或者使用 yii\filters\AccessControl::denyAccess()yii\filters\AccessControl::$denyCallback,如果已设置。

回调的签名应如下所示:

function ($rule, $action)

其中 $rule 是此规则,$action 是当前 action 对象。

参见 yii\filters\AccessControl::$denyCallback.

public callable $denyCallback null
$ips 公共 属性

此规则应用于的用户 IP 地址列表。IP 地址 的末尾可以包含通配符* ,以便与前缀相同的 IP 地址相匹配。 例如,'192.168.*' 匹配网段 '192.168.' 中的所有 IP 地址。 如果未设置或为空,则表示此规则适用于所有 IP 地址。

参见 yii\web\Request::$userIP.

public array $ips null
$matchCallback 公共 属性

将被调用以确定是否应用规则的回调。 回调的签名应如下所示:

function ($rule, $action)

其中 $rule 是此规则,$action 是当前 action 对象。 回调应返回一个布尔值,指示是否应用此规则。

public callable $matchCallback null
$permissions 公共 属性 (自版本 2.0.12 可用)

适用此规则的 RBAC (基于角色的访问控制)权限列表。 将调用 yii\web\User::can() 检查访问权限。

如果此属性未设置或为空,则表示无论权限如何此规则都适用。

参见:

public array $permissions null
$roleParams 公共 属性 (自版本 2.0.12 可用)

传递给 yii\web\User::can() 函数的参数 用于评估 $roles 中的用户权限。

如果这是一个数组,它将直接传递给 yii\web\User::can()。例如 从当前请求传递 ID,您可以使用以下内容:

['postId' => Yii::$app->request->get('id')]

你还可以指定返回数组的闭包。只有在需要数组值的情况下, 才能使用该值来计算数组值, 例如当需要加载模型时 如下面的代码所示:

'rules' => [
    [
        'allow' => true,
        'actions' => ['update'],
        'roles' => ['updatePost'],
        'roleParams' => function($rule) {
            return ['post' => Post::findOne(Yii::$app->request->get('id'))];
        },
    ],
],

yii\filters\AccessRule 实例的引用将作为第一个参数传递给闭包。

参见 $roles.

$roles 公共 属性

此规则适用的角色列表(需要正确配置的用户组件)。 识别两个特殊角色,并通过 yii\web\User::$isGuest 检查它们:

  • ?: 匹配来宾用户(尚未通过身份验证)
  • @: 匹配经过身份验证的用户

如果使用 RBAC (Role-Based Access Control),你还可以指定角色名称。 在这种情况下,将调用 yii\web\User::can() 检查访问权限。

请注意最好检查权限。

如果此属性未设置或为空,则表示无论角色如何,此规则都适用。

参见:

public array $roles null
$verbs 公共 属性

此规则适用的请求方法(例如 GET, POST)的列表。 如果未设置或为空,这意味着此规则适用于所有请求方法。

参见 yii\web\Request::$method.

public array $verbs null

方法详情

allows() 公共 方法

检查是否允许 Web 用户执行指定的操作。

public boolean|null allows($action, $user, $request)
$action yii\base\Action

要执行的操作

$user yii\web\User|false

在分离用户组件的情况下,用户对象或 false

$request yii\web\Request
return boolean|null

如果允许用户,则为 true 如果用户被拒绝,则为 false 如果规则不适用于用户则为 null

matchAction() 受保护 方法

protected boolean matchAction($action)
$action yii\base\Action

操作

return boolean

规则是否适用于操作

matchController() 受保护 方法

protected boolean matchController($controller)
$controller yii\base\Controller

控制器

return boolean

规则是否适用于控制器

matchCustom() 受保护 方法

protected boolean matchCustom($action)
$action yii\base\Action

要执行的操作

return boolean

是否应该应用该规则

matchIP() 受保护 方法

protected boolean matchIP($ip)
$ip string|null

IP 地址

return boolean

规则是否适用于 IP 地址

matchRole() 受保护 方法

protected boolean matchRole($user)
$user yii\web\User

用户对象

return boolean

规则是否适用于角色

throws yii\base\InvalidConfigException

如果用户组件已分离

matchVerb() 受保护 方法

protected boolean matchVerb($verb)
$verb string

请求方法。

return boolean

规则是否适用于请求