分类: 系统运维
2011-06-01 09:26:20
以Yii 1.15版本为例:
RBAC机制包含三个表;存放路径在 framework/web/auth/schema.sql;
RBAC中一共包含三种对象,操作(Operation)、 任务(Task) 和 角色(Role);
auth_items
功能
用来记录RBAC中的对象。字段
其中 type 字段的值含义为
auth_assignments
功能
记录 用户->角色 之间的对应关系,将不同的用户分配至不同的角色(用户组)。字段
auth_itemchildren
功能
记录 角色->任务 、 角色->操作 和 任务->操作 之间的对应关系。字段
可以使用手册提供的一些方法,放在某个控制器中执行一次(CLI模式或者浏览器访问都可以)即可;
当然,也可以手动,直接插入记录到数据库中。
可以使用 来验证,也可以通过 过滤器。
例如:
当前用户属于 Author 组(Role),需要验证是否有 EditPost 的任务(Task)权限,并且Post模型(CActiveRecord)中的 authorId 为当前用户ID;
EditPost 的 bizrule 中包含
开始验证:
$auth = Yii::app()->authManager;获取当前用户所属的组(Role)时,使用
$cuid = Yii::app()->user->id;
这样得到的结果居然是一个包含对象的数组,每个对象的键名为该的属性。
所以,如果需要判断某个用户是否在组中,需要使用isset方法。
例
$cuid = Yii::app()->user->id;