YiiSrbac权限管理(3)

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。当你安装完成后,这里就没用了。可以注释掉了。

再访问链接?r=srbac/authitem/authitem

就可以看到管理界面了。

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

-----------------------------------------------------------------

 最近学习yii框架,yii框架作为全球知名的开源框架,很大的一个优点是:有大量成熟的应用拓展。之前学习tp时,我学习了tp提供的rbac权限管理方法。今天我在yii框架的拓展中找到了同样的SRbac拓展包,它作为yii的一个模块,使用起来十分方便。下面就记录一下安装使用的流程,以备回忆。

首先准备相关的拓展包和基础程序。srbac的下载地址为:  我下载版本为:srbac_1.2_r228 官网还提供了带blog-demo的版本,这里我是自己搭建一个简单的demo,就直接下载源码包就可以了。测试过程中我为了调错还下载了两套debug的拓展包,yii-debug-toolbar和yiidebugtb,前者貌似更强大,至少下载数更多,不过运行时,我遇上一个没有render的情况,就没有加载jquery,导致不能使用,这时候,后面那个就显出优势了。两套debug方法的安装官网拓展包下载页面有详细说明,就不说了,毕竟不是srbac必须的。

接下来建立一个简单的框架骨架,考虑到第一次使用,太复杂的页面最后很可能分不清,所以最简单的初始框架可以让事情简单很多。我直接使用yiic创建了一个名为yiisrbac的应用。同时建立了一个名为yiisrbac的数据库,手工创建了一张只有userid,username和password的user表。同时往里面插入了3条初始数据,分别为:超级管理员账号:system/system系统管理员账号:admin/admin,普通用户demo/demo  

View Code

接下来编辑系统config文件,连接数据库,使用脚手架gii创建usermodel,接下来就是修改components/UserIdentity.php中authenticate()方法,让应用使用数据库实现登陆

 1 protected $_userid;
 2 public function authenticate(){
 3     $user = User::model()->find('username=?', array($this->username));
 4     if($user === null){
 5         $this->errorCode=self::ERROR_USERNAME_INVALID;
 6     }elseif($user->password !== md5($this->password)){
 7         $this->errorCode=self::ERROR_PASSWORD_INVALID;
 8     }else{
 9         $this->errorCode=self::ERROR_NONE;
10         $this->_userid = $user->userid;
11     }
12     return !$this->errorCode;
13 }
14 function getId(){
15     return $this->_userid;
16 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/11199.html