下載 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應用的模塊目錄,如果把srbac作為一個模塊的話,就要在protected文件夾下新建一個文件夾modules,然后把解壓得到的文件夾復制過來。
然后編輯配置文件如下:
在protected/config/main中
首先應該有db的配置:
1 'db'=>array(
2 'connectionString' => 'mysql:host=localhost;dbname=blog',
3 'emulatePrepare' => true,
4 'username' => 'root',
5 'password' => 'guohao',
6 'charset' => 'utf8',
7 'tablePrefix' => 'tbl_',
8 ),
9
10 配置authManager組件:
11 'authManager'=>array(
12 'class'=>'CDbAuthManager',// Manager 的類型
13 'connectionID'=>'db',//使用的數據庫組件
14 'itemTable'=>'items',// 授權項目表 (默認:authitem)
15 'assignmentTable'=>'assignments',// 授權分配表 (默認:authassignment)
16 'itemChildTable'=>'itemchildren',// 授權子項目表 (默認:authitemchild)
17 ),
18 items,assignments,itemchildren三個表的名字可隨意改動。表結構請到framework/web/auth/schema.sql
19
20 'modules'=>array(
21 'srbac' => array(
22 'userclass'=>'User', //可選,默認是 User
23 'userid'=>'id', //可選,默認是 userid
24 'username'=>'username', //可選,默認是 username
25 'debug'=>true, //可選,默認是 false
26 'pageSize'=>10, //可選,默認是 15
27 'superUser' =>'Authority', //可選,默認是 Authorizer
28 'css'=>'srbac.css', //可選,默認是 srbac.css
29 'layout'=>
30 'application.views.layouts.main', //可選,默認是
31 // application.views.layouts.main, 必須是一個存在的路徑別名
32 'notAuthorizedView'=>
33 'srbac.views.authitem.unauthorized', // 可選,默認是unauthorized.php
34 //srbac.views.authitem.unauthorized, 必須是一個存在的路徑別名
35 'alwaysAllowed'=>array( //可選,默認是 gui
36 'SiteLogin','SiteLogout','SiteIndex','SiteAdmin',
37 'SiteError', 'SiteContact'),
38 'userActions'=>array(//可選,默認是空數組
39 'Show','View','List'),
40 'listBoxNumberOfLines' => 15, //可選,默認是10
41 'imagesPath' => 'srbac.images', //可選,默認是 srbac.images
42 'imagesPack'=>'noia', //可選,默認是 noia
43 'iconText'=>true, //可選,默認是 false
44 'header'=>'srbac.views.authitem.header', //可選,默認是
45 // srbac.views.authitem.header, 必須是一個存在的路徑別名
46 'footer'=>'srbac.views.authitem.footer', //可選,默認是
47 // srbac.views.authitem.footer, 必須是一個存在的路徑別名
48 'showHeader'=>true, //可選,默認是false
49 'showFooter'=>true, //可選,默認是false
50 'alwaysAllowedPath'=>'srbac.components', //可選,默認是 srbac.components
51 // 必須是一個存在的路徑別名
52 ),
53
54 ),
//srbac作為一個模塊,所以要聲明一下才能使用。
查看srbac屬性列表可以得到每個屬性的詳細信息。
導入 SbaseController(for using the auto checking access feature):
'import'=>array(
'application.modules.srbac.controllers.SBaseController',
),
這樣就配置完了。接着你可以訪問http://localhost/app/index.php?r=srbac/authitem
進入安裝頁面后如果有變紅的項目,說明你的配置有問題,請修改為正確的配置。然后點擊安裝。
然后完成安裝,顯示成功后,你進入項目,找到protected\modules\srbac \views\authitem\install可以把這個文件夾刪掉,也可以重命名。然后找到protected\modules\srbac \controllers\AuthitemController.php
修改
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。當你安裝完成后,這里就沒用了。可以注釋掉了。
再訪問鏈接http://localhost/app/index.php?r=srbac/authitem/authitem
就可以看到管理界面了。
隨便看了下,果然很強大。