yii中的用户级访问无法正常运行

时间:2014-10-13 03:21:16

标签: php yii

我是yii的新手,我正在使用yii框架创建一个网站。这是我第一次进行USER LEVEL ACCESS。我在 protected / controllers / 中创建了一个 EWebUser.php 文件,这是我的代码`

protected function loadUser(){
    if ($this->_model === null){
        $this->_model=  User::model()->findByPk($this->id);
    }
    return $this->_model;
}

function getLevel(){
    $user = $this->loadUser();
    if ($user)
        return $user->status;
    return '';


  }
}

然后我还在 AdminController 中创建了 accessRules 功能。这是我的代码

public function accessRules() {
        return array(
            array('allow',
                'actions'=>array('index','delete','btnconf'),
                'expression'=>'$user->getLevel()="supadmin"'

            )
        );
    }
`

当我在用户登录时在网址中键入 http://localhost/coretankuyii/index.php/admin/index ,管理员甚至还没有登录仍然可以访问它。我希望能够访问该URL的人只有status = supadmin的人。你可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

将表达式更改为“==”

public function accessRules() {
        return array(
            array('allow',
                'actions'=>array('index','delete','btnconf'),
                'expression'=>'$user->getLevel()=="supadmin"'

            )
        );
    }

如果这不起作用,请尝试以下

public function accessRules() {
        return array(
            array('allow',
                'actions'=>array('index','delete','btnconf'),
                'expression'=>array('AdminController','getLevel');

            )
        );
    }

public function getLevel(){
        $user = $this->loadUser();
        if($user->status=='supadmin')
            return true;
        else
            return false;
}