zhaoxg 2012-10-10 10:02:51 3666次浏览 4条回复 1 0 0

关于accessControl问题: 1.我使用GII生成的CURD代码,accessControl工作正常, 2.我使用GII生成的control代码,在对比了GII生成的代码后把filters()函数加上,则运行开始包错了, `您未被授权执行这个动作 (F:\WWW\wwwroot\YII\framework\web\auth\CAccessControlFilter.php:170)

经过对比两个Control代码没有找到出错的原因,不知道那位老大知道原因,请多指导啊

  • 回复于 2012-10-10 10:23 举报

    没有权限访问,应该授予动作权限。
    例如:

    /**
    * @filters动作返回过滤数组(数组类型)
    */
    public function filters()
    {
        return array(
            'accessControl', // 为CRUD操作执行访问控制
        );
    }
    
    /**
    * 指定访问控制规则
    * 这个方法被'accessControl'过滤器使用
    * @返回访问控制规则数组(数组类型)
    */
    public function accessRules()
    {
        return array(
            array('allow', // 允许认证用户访问所有动作。
                'users'=>array('@'),
            ),
            array('deny',  // 拒绝所有用户
                'users'=>array('*'),
            ),
        );
    }
    
  • 回复于 2012-10-10 11:46 举报

    首先谢谢楼上的答复!
    以上出现问题时是在accessRules()函数被定义的情况下发生的,如不定义accessRules()一切正常!

  • 回复于 2012-10-10 12:44 举报

    问题原因找到,是参数设的问题,

  • 回复于 2012-10-10 16:21 举报

    请问哪个参数设置错了?

您需要登录后才可以回复。登录 | 立即注册