YII框架下SRBAC的安装、配置、使用详解
安装篇:
下载Yii扩展插件Srbac提供下载地址:
http://www.yiiframework.com/extension/srbac/
http://code.google.com/p/srbac/downloads/list
下载完成之后直接将压缩包的文件srbac文件包拷贝到modules文件中,如果没有modules文件,可以创建该文件目录,然后拷贝进去。
配置config.php文件
导入Srbac的默认引导文件,下面红色部分
'import'=>array(
'application.models.*',
'application.components.*',
'application.modules.srbac.controllers.SBaseController',
),
在组件中配置好当前的数据库,已有的不用修改,首次安装需要开启相关的数据库,本人使用MySQL数据库
'db'=>array(
'connectionString'=> 'mysql:host=localhost;dbname=shareweb',
'emulatePrepare' =>true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' =>'share_',
),
加入Srbac所需要的表,进行自动管理(导入所需要的三个基本表)
'authManager'=>array(
'class'=>'application.modules.srbac.components.SDbAuthManager',
'connectionID'=>'db',
'itemTable'=>'share_items',
'assignmentTable'=>'share_assignments',
'itemChildTable'=>'share_itemchildren',
),
注意:(这三个基本表可以随意定义表明,没有特别的要求,建议使用原表命名,加上表前缀)
加载Srbac模块在modules中进行相关的配置
'srbac'=> array(
'userclass'=>'Users', ?????//用户model名字段
'userid'=>'id', ???????????//用户表user_id的标识字段
'username'=>'username', ???//用户表username的标识字段
'delimeter'=>'/', ?????????//控制器名和方法的分割线(在Srbac模块中的体现)
'debug'=>true, ????????????//debug模式为真,Srbac模块失效,debug模式为假,Srbac模块工作
'pageSize'=>10, ???????????//Srbac模块中的分页设置
'superUser' =>'Authority', // Srbac中最高权限管理者名称
'css'=>'srbac.css', ???????//Srbac加载的CSS样式
'layout'=>'application.views.layouts.main', ??//Srbac模块展现的主题模版
'notAuthorizedView'=>'srbac.views.authitem.unauthorized', ??//非自动验证视图
'alwaysAllowed'=>array( ???//默认不分权限管理的action动作
'SiteLogin','SiteLogout','SiteIndex','SiteAdmin',
'SiteError', 'SiteContact',
),
'userActions'=>array('Show','View','List'), ????//User?默认的动作
'listBoxNumberOfLines' => 15, ?????????????????//Srbac模块中的listbox分页
'imagesPath' => 'srbac.images', ???????????????//Srbac模块加载图文件夹
'imagesPack'=>'tango', ????????????????????????//Srbac模块主题的风格noia,tango两种
'iconText'=>true, ?????????????????????????????//图片上显示文本,为真有文本,为假只有图标
'header'=>'srbac.views.authitem.header', ??//Srbac模块视图的view头部
'footer'=>'srbac.views.authitem.footer', ??//Srbac模块视图的view页尾
'showHeader'=>true, ?????//显示视图头部
'showFooter'=>true, ?????//显示视图尾部
'alwaysAllowedPath'=>'srbac.components', ??//默认加载Srbac的核心文件地址
),
),
测试:
http://ahui.shareweb.com/index.php?r=srbac(设置debug为真),进入安装页面会有配置文件的选择,检查完之后勾选复选框,进行安装,安装成功之后会进入Srbac管理页面;
使用:
创建task任务组,该组可以管理组内的所有operate动作
创建Operation动作操作,创建用户角色Role组(与Task同样)
分配任务管理,将operation?纳入Task中
将Tasks纳入用户组中进行管理
将用户进行分组管理
一切就绪之后,可以开启?debug?为?false?,进行生产模式工作。以上仅供参考,不足之处,还请不惜赐教。