ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

yii\filters\AccessControl 访问权限控制

2019-08-19 15:03:13  阅读:270  来源: 互联网

标签:AccessControl yii 用户 base filters 规则


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 functionbehaviors(){
    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 列出所有不需要启用过滤规则的action ID yii\base\ActionFilter
$only array 列出所有需要启用过滤规则的action ID 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”,以显式地为筛选器关闭此组件支持。

public yii\web\User|array|string|false $user = 'user'

方法详情

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()

标签:AccessControl,yii,用户,base,filters,规则
来源: https://www.cnblogs.com/fpcing/p/11377089.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有