background image

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

('@'), 

// @

 

号指所有注册的用户

),