基础控制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验证了