tp3.2 auth认证对ajax请求无效?

浏览:987 发布日期:2014/04/23 分类:求助交流
rule的name字段值如下:
Admin/Account/info 这是我查询信息的方法

管理员A所属分组未赋予该权限,但是我查询信息的时候是用ajax方法提交的:function getInfo(id) {
            $.get("<%:U('Account/info')%>" + "?id=" + id, function(data) {
                  if (data) {
                      ......
                  } else {
                         ......
                  }
            });
        }
这样明明没有权限的 但是任然可以获取到数据 请问是什么原因?

以下是我判断权限的方法protected function _initialize() {
        // 获取当前用户ID
        define('UID', is_login());
        if (!UID) {// 还没登录 跳转到登录页面
            $this -> redirect('Public/login');
        }
        // 是否是超级管理员
        define('IS_ROOT', is_administrator(UID));
        //权限检测
        $rule = strtolower(MODULE_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME);
        if (!$this -> checkRule($rule)) {
            $this -> error('提示:无权访问,您可能需要联系管理员为您授权!');
        }
    }

final protected function checkRule($rule) {
        if (IS_ROOT) {
            //超级管理员无限制
            return true;
        }
        $AUTH = new \Think\Auth();
        if (!$AUTH -> check($rule, UID)) {
            return false;
        }
        return true;
    }
请各位大牛帮忙看看 小弟新手 第一次用这个 很桑心的说....
最佳答案
评论( 相关
后面还有条评论,点击查看>>