Yii框架中安装srbac扩展方法

首先,下载srbac_1.3beta.zip文件和对应的blog-srbac_1.2_r228.zip
问什么要下载第二个文件,后面就知道了。
  1. 按照手册进行配置:
  • 解压缩srbac_1.3beta.zip文件,将解压后的文件复制到你的application/protected/modules目录下,注意是modules,而不是我们经常把扩展放到的那个extension目录。
  •  配置你的application的config目录下的main.php文件。在import节添加配置,如:
'import'=>array(
        'application.modules.srbac.controllers.SBaseController',); 

 

  •  在modules节添加配置,如:

 

 
'srbac' => array(
                'userclass'=>'User', //可选,默认是 User
                'userid'=>'id', //可选,默认是 userid
                'username'=>'username', //可选,默认是 username
                'debug'=>true//可选,默认是 false
                'pageSize'=>10, //可选,默认是 15
                'superUser' =>'Authority', //可选,默认是 Authorizer
                'css'=>'srbac.css', //可选,默认是 srbac.css
                'layout'=>'application.views.layouts.main', //可选,默认是
                // application.views.layouts.main, 必须是一个存在的路径别名

                'notAuthorizedView'=>
                     'srbac.views.authitem.unauthorized', // 可选,默认是unauthorized.php
                     //srbac.views.authitem.unauthorized, 必须是一个存在的路径别名

                     'alwaysAllowed'=>array(//可选,默认是 gui
                            'SiteLogin','SiteLogout','SiteIndex','SiteAdmin',
                            'SiteError', 'SiteContact'),
                     'userActions'=>array(//可选,默认是空数组
                                       'Show','View','List'),
                     'listBoxNumberOfLines' => 15, //可选,默认是10
                     'imagesPath' => 'srbac.images', //可选,默认是 srbac.images
                     'imagesPack'=>'noia', //可选,默认是 noia
                     'iconText'=>true//可选,默认是 false
                     'header'=>'srbac.views.authitem.header', //可选,默认是
                      // srbac.views.authitem.header, 必须是一个存在的路径别名

                     'footer'=>'srbac.views.authitem.footer', //可选,默认是
                     // srbac.views.authitem.footer, 必须是一个存在的路径别名

                     'showHeader'=>true//可选,默认是false
                     'showFooter'=>true//可选,默认是false
                     'alwaysAllowedPath'=>'srbac.components', //可选,默认是 srbac.components
                     // 必须是一个存在的路径别名

        ),

 

 
  •  然后修改components里的authManager配置:
 
'authManager'=>array(
                // 'class'=>'CDbAuthManager',// Manager 的类型
                 'class'=>'srbac.components.SDbAuthManager',   
                 'connectionID'=>'db',//使用的数据库组
                 'itemTable'=>'tbl_items',// 授权项目表 (默认:authitem)
                 'assignmentTable'=>'tbl_assignments',// 授权分配表 (默认:authassignment)
                'itemChildTable'=>'tbl_itemchildren',// 授权子项目表 (默认:authitemchild)
        ),
 

 注意这里,'class'=>'srbac.components.SDbAuthManager', 手册上写的是modules.srbac.components.SDbAuthManager,

      折腾半天,还是参照了blog里的例子才发现的。
 
  1.  OK,到这里,配置的工作就算完成了,然后在浏览器中运行application/index.php?r=srbac
      这时会跳转到安装页面,奇怪,为什么会提示找不到User.php呢?
      这时候前面下载的第二个文件就有用了,还是解压缩,然后再protected/models目录中找到User.php这个文件,拷贝到你
      的application对应的目录中。
      然后刷新安装页面,又提示找不到{[User]}这个表,没完了啊,继续在blog的这个例子里,protected/db目录中,打开schema.mysql.sql,
      里面有tbl_user表的sql,摘出来,在mysql里执行下,然后修改User.php的tableName方法为:
      public function tableName()
      {
           return 'tbl_user';
      }

 

posted @ 2013-07-08 13:16  jshaibozhong  阅读(248)  评论(0编辑  收藏  举报