tp 权限冲突的问题

基础控制baseController

    public function __construct()
    {
        parent::__construct();
        if(!$this->chechAuth()){
            exit('你没有该权限!');
        }
    }

    public function chechAuth(){
       $adminid=intval($_SESSION['dl']['id']);
       if($adminid==1){
           return true;
       }
        /*
         *白名单
         */
        if(MODULE_NAME=='Rbac'&&CONTROLLER_NAME=='Index'){
            return true;
        }
        //权限判断
       $model=M();
       //取出管理员id具有的auth和当前模型\控制器\方法 的记录,如果>0
       $sql="SELECT COUNT(*) as count from addon_manager_has_role as mr join addon_role_has_auth ra on mr.role_id=ra.role_id join addon_auth as a on ra.auth_id=a.id  where mr.manager_id='".$adminid."' and a.module='".MODULE_NAME."' and a.controller='".CONTROLLER_NAME."' and a.action='".ACTION_NAME."'";
       $count=$model->query($sql);
       if($count[0]['count']>0){
           return true;
       }else{
           return false;
       }
    }

ManagerController 继承基础控制器baseController
其中有一个validate的远程验证方法remoteName,验证用户名是否已经存在

    public function remoteName(){
        if($_POST)
        {
            // $uname = $_POST['uname'];
            $uname=I('post.uname');
            $data=$this->_model->remoteName($uname);
            if($data)
            {
                echo 'false';
            }else{
                echo 'true';
            }
            exit();
        }
    }

当我在basecontroller中起用这句
if(!$this->chechAuth()){

        exit('你没有该权限!');
    }

validate就无法通过,表单无法提交,取消掉,就一切正常.
帐号权限没问题,也没有提示,你没有该权限,不知道为什么会影响jquery validate验证了

阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进