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

This class represents an access rule defined by the yii\filters\AccessControl action filter.

公共属性

隐藏继承的属性

属性类型描述被定义在
$actions array List of action IDs that this rule applies to. yii\filters\AccessRule
$allow boolean Whether this is an 'allow' rule or 'deny' rule. yii\filters\AccessRule
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$controllers array List of the controller IDs that this rule applies to. yii\filters\AccessRule
$denyCallback callable A callback that will be called if this rule determines the access to the current action should be denied. yii\filters\AccessRule
$ips array List of user IP addresses that this rule applies to. yii\filters\AccessRule
$matchCallback callable A callback that will be called to determine if the rule should be applied. yii\filters\AccessRule
$permissions array List of RBAC (Role-Based Access Control) permissions that this rules applies to. yii\filters\AccessRule
$roleParams array|Closure Parameters to pass to the yii\web\User::can() function for evaluating user permissions in $roles. yii\filters\AccessRule
$roles array List of roles that this rule applies to (requires properly configured User component). yii\filters\AccessRule
$verbs array List of request methods (e.g. GET, POST) that this rule applies to. 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() Checks whether the Web user is allowed to perform the specified action. 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 公共 属性

List of action IDs that this rule applies to. The comparison is case-sensitive. If not set or empty, it means this rule applies to all actions.

public array $actions null
$allow 公共 属性

Whether this is an 'allow' rule or 'deny' rule.

public boolean $allow null
$controllers 公共 属性

List of the controller IDs that this rule applies to.

The comparison uses yii\base\Controller::$uniqueId, so each controller ID is prefixed with the module ID (if any). For a product controller in the application, you would specify this property like ['product'] and if that controller is located in a shop module, this would be ['shop/product'].

The comparison is case-sensitive.

If not set or empty, it means this rule applies to all controllers.

Since version 2.0.12 controller IDs can be specified as wildcards, e.g. module/*.

public array $controllers null
$denyCallback 公共 属性

A callback that will be called if this rule determines the access to the current action should be denied. This is the case when this rule matches and $allow is set to false.

If not set, the behavior will be determined by yii\filters\AccessControl, either using yii\filters\AccessControl::denyAccess() or yii\filters\AccessControl::$denyCallback, if configured.

The signature of the callback should be as follows:

function ($rule, $action)

where $rule is this rule, and $action is the current action object.

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

public callable $denyCallback null
$ips 公共 属性

List of user IP addresses that this rule applies to. An IP address can contain the wildcard * at the end so that it matches IP addresses with the same prefix. For example, '192.168.*' matches all IP addresses in the segment '192.168.'. If not set or empty, it means this rule applies to all IP addresses.

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

public array $ips null
$matchCallback 公共 属性

A callback that will be called to determine if the rule should be applied. The signature of the callback should be as follows:

function ($rule, $action)

where $rule is this rule, and $action is the current action object. The callback should return a boolean value indicating whether this rule should be applied.

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

List of RBAC (Role-Based Access Control) permissions that this rules applies to. yii\web\User::can() will be called to check access.

If this property is not set or empty, it means this rule applies regardless of permissions.

参见:

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

Parameters to pass to the yii\web\User::can() function for evaluating user permissions in $roles.

If this is an array, it will be passed directly to yii\web\User::can(). For example for passing an ID from the current request, you may use the following:

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

You may also specify a closure that returns an array. This can be used to evaluate the array values only if they are needed, for example when a model needs to be loaded like in the following code:

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

A reference to the yii\filters\AccessRule instance will be passed to the closure as the first parameter.

参见 $roles.

$roles 公共 属性

List of roles that this rule applies to (requires properly configured User component). Two special roles are recognized, and they are checked via yii\web\User::$isGuest:

  • ?: matches a guest user (not authenticated yet)
  • @: matches an authenticated user

If you are using RBAC (Role-Based Access Control), you may also specify role names. In this case, yii\web\User::can() will be called to check access.

Note that it is preferred to check for permissions instead.

If this property is not set or empty, it means this rule applies regardless of roles.

参见:

public array $roles null
$verbs 公共 属性

List of request methods (e.g. GET, POST) that this rule applies to. If not set or empty, it means this rule applies to all request methods.

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

public array $verbs null

方法详情

allows() 公共 方法

Checks whether the Web user is allowed to perform the specified action.

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

The action to be performed

$user yii\web\User|false

The user object or false in case of detached User component

$request yii\web\Request
return boolean|null

true if the user is allowed, false if the user is denied, null if the rule does not apply to the user

matchAction() 受保护 方法

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

The action

return boolean

Whether the rule applies to the action

matchController() 受保护 方法

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

The controller

return boolean

Whether the rule applies to the controller

matchCustom() 受保护 方法

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

The action to be performed

return boolean

Whether the rule should be applied

matchIP() 受保护 方法

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

The IP address

return boolean

Whether the rule applies to the IP address

matchRole() 受保护 方法

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

The user object

return boolean

Whether the rule applies to the role

throws yii\base\InvalidConfigException

if User component is detached

matchVerb() 受保护 方法

protected boolean matchVerb($verb)
$verb string

The request method.

return boolean

Whether the rule applies to the request