Yii框架授权——accessRules用法
来源:互联网 发布:淘宝手机端优惠券链接 编辑:程序博客网 时间:2024/06/14 09:38
Yii框架授权——accessRules用法
访问控制过滤器(Access Control Filter)
访 问控制过滤器是检查当前用户是否能执行访问的controlleraction的初步授权模式。这种授权模式基于用户名,客户IP地址和访问类型。访问控制过滤器适用于简单的验证。需要复杂的访问控制,需要使用将要讲解到的基于角色访问控制(role-based access (RBAC)).
在控制器(controller)里重载CController::filters方法设置访问过滤器来控制访问动作(看 Filter了解更多过滤器设置信息)。
class PostController extends CController
{
......
public function filters()
}
在上面,设置的accesscontrol过滤器将应用于PostController里每个动作。过滤器具体的授权规则通过重载控制器的CController::accessRules方法来指定。
class PostController extends CController
{
}
上面设定了三个规则,每个用个数组表示。数组的第一个元素不是'allow'就是'deny',其他的是名-值成对形式设置规则参数的。上面的规则这样理解:create和edit动作不能被匿名执行;delete动作可以被admin角色的用户执行;delete动作不能被任何人执行。
访问规则是一个一个按照设定的顺序一个一个来执行判断的。和当前判断模式(例如:用户名、角色、客户端IP、地址)相匹配的第一条规则决定授权的结果。如果这个规则是allow,则动作可执行;如果是deny,不能执行;如果没有规则匹配,动作可以执行。
为了确保某类动作在没允许情况下不被执行,设置一个匹配所有人的deny规则在最后,类似如下:
return array(
);
因为如果没有设置规则匹配动作,动作缺省会被执行。
访问规则通过如下的上下文参数设置:
actions: 设置哪个动作匹配此规则。
users: 设置哪个用户匹配此规则。此当前用户的name 被用来匹配. 三种设定字符在这里可以用:
*: 任何用户,包括匿名和验证通过的用户。
?: 匿名用户。
@: 验证通过的用户。
roles: 设定哪个角色匹配此规则。这里用到了将在后面描述的role-based access control技术。Inparticular, the rule is applied if CWebUser::checkAccess returnstrue for one of the roles.提示,用户角色应该被设置成allow规则,因为角色代表能做某些事情。
ips: 设定哪个客户端IP匹配此规则。
verbs: 设定哪种请求类型(例如:GET, POST)匹配此规则。
expression:设定一个PHP表达式。它的值用来表明这条规则是否适用。在表达式,你可以使用一个叫$user的变量,它代表的是Yii::app()->user。
访问规则中:
expression:设定一个PHP表达式。它的值用来表明这条规则是否适用。在表达式,你可以使用一个叫$user的变量,它代表的是Yii::app()->user。
expression的具体用法:
class AdminController extends CController
{
}
注:其中$user代表Yii::app()->user即登录用户。
原文:http://hi.baidu.com/cds_wh/item/6ae0e3f0b5eb9bc1a835a235
- Yii框架授权——accessRules用法
- Yii框架授权——accessRules用法
- Yii框架授权——accessRules用法
- Yii框架授权——accessRules用法
- Yii框架授权——accessRules用法(2)
- Yii框架授权——accessRules用法(2)
- Yii的accessRules用法
- Yii的accessRules用法
- YII学习第二十三天,accessRules用法
- accessRules用法
- yii中accessRules的使用
- Yii-控制器- accessRules访问权限控制
- Yii框架事务用法
- yii框架笔记—后台
- Yii框架—搜索分页
- Yii框架中的SQL用法
- YII 授权
- yii框架学习——1. 安装
- dhtmlxGantt (jquery甘特图)用法
- 失去鼠标焦点触发
- yformater
- 修改Yii默认跳转的登录页面地址
- HDU 1181 变形课
- Yii框架授权——accessRules用法
- Android单元测试的利器:Juint(一):Juint的介绍和基础使用
- 关于Yii 验证码(captcha)的一些…
- YII CRUD 例子
- 通过Python访问XAMPP里面的MySQL数…
- AT91Sam9260的网卡驱动
- python下的MySQLdb使用
- jQuery-Selectors(选择器)的使用(一、基本篇)
- ThinkPHP import 类库导入 T…