您的位置:首页 > 编程语言 > PHP开发

YII框架使用SRBAC实现RBAC权限访问控制

2014-08-21 14:25 871 查看
YII框架使用SRBAC实现RBAC权限访问控制

1. 下载

可访问以下网址下载: http://www.yiiframework.com/extension/srbac/

或使用附件中的压缩包
2. 安装

首先安装YII. (具体步骤略)

在protected文件夹下创建文件夹modules

解压#1下载的压缩包, 并将srbac拷贝至modules文件夹下

配置main.php如下(红色部分):

修改protected/components/Controller.php, 使其继承SBaseController. 如果不继承此类, 所有的controller将无法使用RBAC进行访问控制
class Controller extends SBaseController

访问http://127.0.0.1/index.php?r=srbac, 界面提示安装

点击安装后确定.

相关文档

Srbac 1.1.0.2 使用手册什么是srbac?

Srbac 是一个为 Yii 框架设计的模块。

它设计用来简化 Yii authManager 组件的使用,authManager 组件实现基于角色的访问控制(R.B.A.C)。

srbac 支持的 authManager 是 CdbAuthManger , CdbAuthManger 使用一个数据库来存储认证信息。 Srbac 为大多数 RBAC 动作(创建/编辑/删除 认证项目,为用户分配认证项目等)提供了一个图形界面。

Srbac 1.1.x 需要 Yii 版本 1.1.0 或更新的版本。
下载 srbac

Srbac 可以在如下地址下载:

Yii 扩展页面: http://www.yiiframework.com/extension/srbac/

Google 项目页面: http://code.google.com/p/srbac/downloads/list

也可以使用如下命令签出最新的开发代码:

svn checkout http://srbac.googlecode.com/svn/trunk/ srbac-read-only
安装 srbac

要安装 srbac 模块,首先解压压缩文件到Yii应用的模块目录,然后编辑配置文件如下:

配置数据库组件:

配置authManager组件:

配置srbac 模块:


查看srbac属性列表可以得到每个属性的详细信息。

导入 SbaseController(for using the auto checking access feature):

现在访问 /path/to/application/index.php?r=srbac 你将转向到安装页面。

一个检查被执行,若一切OK,你可以开始安装(也可以选择创建一些演示用的授权项目)。

若 srbac 已经被安装,将提示你覆盖之前的安装(这将丢弃所有的表并删除你当前的授权数据)。

一个 'Authorizer' 角色将被创建。(你可以在 srbac 配置中修改它的名字)。这是唯一可以管理 srbac 的用户(创建,编辑,删除角色,人物,操作以及为用户分配权限)。

注意,除非你设置 srbac debug 属性为 false ,否则任何人均可以管理 srbac, 同时,除非你分配 Authorizer 角色到至少一个用户,否则任何人均可以管理srbac。

在分配 Authorizer 角色到一个用户后,设置 srbac debug 属性为false 是明智的。同时你也可以删除或重命名 srbac/views/authitem/install 目录。

srbac 主要的管理页面是:path/to/application/index.php?r=srbac/authitem/frontpage。
自动创建和访问检查(Autocreation and access checking)

自版本 1.02 开始,你可以为你的控制器自动创建 操作/任务。 操作的命名格式是:[ModuleId_][Subdirectory.][ContollerId][Action]。例如:
posts_PostView : 模块 posts , 控制器 Post, 动作 View
posts_admin.PostDelete : 模块 posts, 子目录 admin, 控制器 Post, 动作 delete
SiteIndex : 控制器 Site , 动作 Index.


你也可以创建 2 个任务,格式是 [ControllerId]Viewing, [ControllerId]Administrating (例如PostViewing, PostAdministrating).

所有操作被分配到 administrating 任务,通过在 srbac 配置中编辑 userActions 属性,你可以选择哪些操作被分配到viewing 任务。

若你也想要 srbac 在控制器中自动检查访问权限,你的控制器应当扩展 srbac 模块中的 SBaseController 类或其子类。

SbaseController 重写 beforeAction($action) 方法并检查当前用户是否有权限访问当前的 controller/action。

要决定一个用户没有权限访问页面后的要做的事情,你可以重写 SBaseController 中的 onUnauthorizedAccess 方法。 这样你可以显示一个未授权信息页面,转向到登录页面等。
国际化

若你想要翻译 srbac 文本,你应当在 Yii 配置文件中设置目标语言:'language'=>'fr',

然后创建如下包含翻译信息的文件:

srbac/messages/fr/srbac.php (你可以复制 el_gr/srbac.php 并翻译其中的信息)。

srbac/views/install/fr/installText.php (你应当翻译 srbac/views/install/installText.php)

转载:http://hi.baidu.com/begin/item/bdeda03e777316ee1b96968f
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: