xmh北海 2012-10-10 10:35:51 3750次浏览 5条回复 0 0 0
public function accessRules()
{
    return array(
    array('allow',  
        'actions'=>array('index','view'),
        'users'=>array('*'),
    ),
    array('allow',
        'actions'=>array('download'),
        'expression'=>'yii::app()->user->isIntranet()',
        'message'=>'用户IP不在允许范围内',//不起作用啊
    ),
    array('deny',// deny all users
        'users'=>array('*'),
    ),

    );
}

每次IP不在范围的时候都提示默认的错误“您未被授权执行这个动作”,怎样才能使message起作用啊,求大神帮忙

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

    写法没错。'expression'=>'yii::app()->user->isIntranet()',这个起作用了吗?
    这样试试。

    public function accessRules()
    {
        return array(
            array('allow', 'actions'=>array('index','view'), 'users'=>array('*'),),
            array('allow', 'actions'=>array('download'), 'ips'=>array('127.0.0.1','192.168.*'), 'message'=>'用户IP不在允许范围内',),
            array('deny', 'users'=>array('*')),
        );
    }
    
  • 回复于 2012-10-10 10:55 举报

    LS v5

    方法确实没错,可能是expression写错了。

  • 回复于 2012-10-10 11:31 举报

    'expression'=>'yii::app()->user->isIntranet()',//这个起作用了,当IP在范围内时,可以正确跳转

    public function accessRules()
    {
        return array(
            array('allow', 'actions'=>array('index','view'), 'users'=>array('*'),),
            array('allow', 'actions'=>array('download'), 'ips'=>array('127.0.0.1','192.168.*'), 'message'=>'用户IP不在允许范围内',),
            array('deny', 'users'=>array('*')),
        );
    }
    

    这样使用还是提示:您未被授权执行这个动作

  • 回复于 2012-10-10 16:16 举报
    public function accessRules()
    {
        return array(
            array('allow', 'actions'=>array('index','view'), 'users'=>array('*'),),
            array('allow', 'actions'=>array('download'), 'ips'=>array('127.0.0.1','192.168.*')),
            array('deny', 'users'=>array('*'), 'message'=>'用户IP不在允许范围内',),
        );
    }
    

    这样加到最后就应该没问题了。

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

    谢谢,这样可以了。。

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