PHP 框架:yii 权限分级式访问控制的实现(非 RBAC
法)
本篇文章是对 yii 权限分级式访问控制的实现方法进行了详细的分析介绍,需要的朋友参
考下
yii framework 提供了 2 套权限访问系统,一套是简单的 filter(过滤器)模式,另一套是
复杂全面的 RBAC
模式,我这里要讲的是第一套(因为我也刚刚学到这里)。如 果你有
研究过 YII 官方的 demo blog,一定知道,比如,由 gii 自动生成的 user 模块,自动附带了
简单的 filter 权限分配功能,具体细节请参照 blog
“
”
手册的 用户验证 一章 节,以及 yii 官
“
”
方指南的 验证和授权 一章节。(注意,我这里所指的模块,只是我个人对与 user 有关的
文件的统称,与 yii
文件系统的模块 (module)含义不同。)
关于权限分配的文件大多在 controllers 里,比如打开 UserController.php 文件你会看到 2 个
类函数。
代码如下:
public
function
filters()
{
return
array
(
'accessControl',
// 实现 CRUD
操作的访问控制。
'postOnly + delete',
);
}
public
function
accessRules()
//
这里就是访问规则的设置。
{
return
array
(
array
('allow',
// 允许所有用户执行 index,view
动作。
'actions'=>
array
('index','view'),
'users'=>
array
('*'), <span></span>
),
array
('allow',
// 只允许经过验证的用户执行 create, update
动作。
'actions'=>
array
('create','update'),
'users'=>
array
('@'),
// @
号指所有注册的用户
),