访问规则中:
expression: 设定一个PHP表达式。它的值用来表明这条规则是否适用。在表达式,你可以使用一个叫$user的变量,它代表的是Yii::app()->user
expression的具体用法:
class AdminController extends CController
{
 

……
    public function accessRules()
    {
        return array(
        array('allow',  //允许所有人执行'login','error','index'
                'actions'=>array('login','error','index'),
                'users'=>array('*'),
        ),
        array('allow', //允许超级管理员执行所有动作
                'actions'=>array('create','update','delete'),
                'expression'=>array($this,'isSuperAdmin'),
        ),
        array('allow',//允许普通管理员执行
                'actions'=>array('update'),
                'expression'=>array($this,'isNormalAdmin'),    //表示调用$this(即AdminController)中的isNormalAdmin方法。
        ),      
        array('deny',  // deny all users
                'users'=>array('*'),
        ),
        );
    }
    protected function isSuperAdmin($user)//判断是否是超级管理员
    {
        return ($this->loadModel($user->id)->adminAdminFlag==1);
    }
    protected function isNormalAdmin($user)//判断是否是普通管理员
    {
        return ($this->loadModel($user->id)->adminAdminFlag==0);
    }

    public function loadModel($id)
    {
        $model=Admin::model()->findByPk((int)$id);
        if($model===null){
            throw new CHttpException(404,'页面不存在');     
        }
        return $model;
    }
}

注:其中$user代表Yii::app()->user即登录用户。

相关文章:

  • 2022-12-23
  • 2022-01-08
  • 2021-08-23
  • 2021-12-08
  • 2022-12-23
  • 2022-02-17
  • 2022-01-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-28
  • 2021-12-31
  • 2022-12-23
  • 2022-12-23
  • 2021-04-14
  • 2022-12-23
相关资源
相似解决方案