Chinaunix首页 | 论坛 | 博客
  • 博客访问: 244952
  • 博文数量: 62
  • 博客积分: 1350
  • 博客等级: 中尉
  • 技术积分: 457
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-13 09:56
文章分类

全部博文(62)

文章存档

2016年(1)

2013年(9)

2012年(18)

2011年(31)

2010年(1)

2006年(2)

分类: 系统运维

2012-11-19 15:21:35

第一步,下载Srbac,下载地址:;
第二步,解压至protected/modules/srbac;
第三步,配置config/main.php,如下:

'import'=>array(
    'application.models.*',
    'application.components.*',
    'application.extensions.*',
    'application.modules.srbac.controllers.SBaseController',
),
'components'=>array(
    'user'=>array(
        // enable cookie-based authentication
        'allowAutoLogin'=>true,
    ),
    'authManager'=>array(
        'class'=>'CDbAuthManager',
        'connectionID'=>'db',
        'itemTable'=>'items',
        'assignmentTable'=>'assignments',
        'itemChildTable'=>'itemchildren',
    ),
    'db'=>array(
        'connectionString' => 'mysql:host=localhost;dbname=cms',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '123456',
        'charset' => 'utf8',
    ),
),
 'modules'=>array(
        'srbac' => array(
        'userclass'=>'User',
        'userid'=>'id',
        'username'=>'username',
        'debug'=>true,
        'pageSize'=>10,
        'superUser' =>'Authority',
        'css'=>'srbac.css',
        'layout'=>'application.views.layouts.main',
        'notAuthorizedView'=>'srbac.views.authitem.unauthorized',
        'alwaysAllowed'=>array('SiteLogin','SiteLogout','SiteIndex','SiteAdmin','SiteError', 'SiteContact'),
        'userActions'=>array('Show','View','List'),
        'listBoxNumberOfLines' => 15,
        'imagesPath' => 'srbac.images',
        'imagesPack'=>'noia',
        'iconText'=>true,
        'header'=>'srbac.views.authitem.header',
        'footer'=>'srbac.views.authitem.footer',
        'showHeader'=>true,
        'showFooter'=>true,
        'alwaysAllowedPath'=>'srbac.components',
    ),
),

第四步,打开浏览器,输入/path/to/application/index.php?r=srbac进行安装.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
下边是另一篇文章,有说配置和后续设置,还没仔细看
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Yii Framework扩展srbac的配置

Srbac 可以在如下地址下载:
Yii 扩展页面:
Google 项目页面:

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

svn checkout srbac-read-only

安装 srbac

要安装 srbac 模块,首先解压压缩文件到Yii应用的模块目录,如果把srbac作为一个模块的话,就要在protected文件夹下新建一个文件夹modules,然后把解压得到的文件夹复制过来。

然后编辑配置文件如下:

在protected/config/main中

首先应该有db的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
'db'=>array(
     'connectionString' => 'mysql:host=localhost;dbname=blog',
     'emulatePrepare' => true,
     'username' => 'root',
     'password' => 'guohao',
     'charset' => 'utf8',
     'tablePrefix' => 'tbl_',
    ),
    
 配置authManager组件:
 'authManager'=>array(
     'class'=>'CDbAuthManager',// Manager 的类型
     'connectionID'=>'db',//使用的数据库组件
     'itemTable'=>'items',// 授权项目表 (默认:authitem)
     'assignmentTable'=>'assignments',// 授权分配表 (默认:authassignment)
     'itemChildTable'=>'itemchildren',// 授权子项目表 (默认:authitemchild)
 ),
 items,assignments,itemchildren三个表的名字可随意改动。表结构请到framework/web/auth/schema.sql
    
 'modules'=>array(
        '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
            // 必须是一个存在的路径别名
        ),
 ),

//srbac作为一个模块,所以要声明一下才能使用。

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

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

1
2
3
4
'import'=>array(
   'application.modules.srbac.controllers.SBaseController',
   
),

这样就配置完了。接着你可以访问

进入安装页面后如果有变红的项目,说明你的配置有问题,请修改为正确的配置。然后点击安装。

然 后完成安装,显示成功后,你进入项目,找到protected\modules\srbac \views\authitem\install可以把这个文件夹删掉,也可以重命名。然后找到protected\modules\srbac \controllers\AuthitemController.php

修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
protected function beforeAction($action) {
    //if(!$this->module->isInstalled() && $action->id != "install") {
    // $this->redirect(array("install"));
    // $this->actionInstall();
     // return false;
    //}
   
    if($this->module->debug) {
      return true;
    }
   
    if( Yii::app()->user->checkAccess(Helper::findModule('srbac')->superUser) ||
      !Helper::isAuthorizer()) {
      return true;
    } else {
      parent::beforeAction($action);
    }
}


因为这个地方判断每次都是新安装srbac。当你安装完成后,这里就没用了。可以注释掉了。

再访问链接

就可以看到管理界面了。

随便看了下,果然很强大。


阅读(1671) | 评论(0) | 转发(0) |
0

上一篇:Yii验证码实现

下一篇:CButtonColumn详解

给主人留下些什么吧!~~