array
('allow',
// 只允许用户名是 admin 的用户执行 admin,delete
动作
'actions'=>
array
('admin','delete'),
'users'=>
array
('admin'),
),
//admin 就是指用户名是 admin 的用户,
以硬编码的形式分配用户权限。
array
('deny',
//
拒绝所有的访问。
'users'=>
array
('*'),
),
);
}
关于更多的访问规则的设定请参照官方文件
http:
//www.yiiframework.com/doc/api/1.1/CAccessControlFilter
好了,现在要开始按照我们自己的需求设置适合自己的权限分配了。我们希望 filter 访问
控制模式能更完美一点,按照常识,我们希望它能按照数据库里 user 表里不同级别用户,
实行不同的授权,而不是用硬编码的形式控制。
回到 demo blog,我先对数据库的 tbl_user 表做修改,在原来的基础上加上 role 一项。对原
来的用户信息记录添加 role 的 value 为"管理员"或"一般用户"
。
然后依次执行以下 3
个步骤:
1. 创建组件 WebUser,它是对 CWebUser 的扩展。
2. 修改 config/main.php 文件。
3.修改 accessRules()。
具体细节如下:
1.WebUser.php 组件代码:
代码如下:
<strong><?php
// this file must be stored in:
// protected/components/WebUser.php
class
WebUser
extends
CWebUser {
// Store model to not repeat query.
private
$_model
;
// Return first name.
// access it by Yii::app()->user->first_name
function
getFirst_Name(){