首页 > 代码库 > ThinkPHP Authority.class.php 修改待验证的权限$name如果权限列表里面不存在则默认有该权限
ThinkPHP Authority.class.php 修改待验证的权限$name如果权限列表里面不存在则默认有该权限
//获得权限$name 可以是字符串或数组或逗号分割, uid为 认证的用户id, $or 是否为or关系,为true是, name为数组,只要数组中有一个条件通过则通过,如果为false需要全部条件通过。//最后修改功能:待验证的权限$name如果权限列表里面不存在则默认有该权限public function getAuth($name, $uid, $relation=‘or‘) { if (!$this->_config[‘AUTH_ON‘]) return true; $authList = $this->getAuthList($uid); if (is_string($name)) { if (strpos($name, ‘,‘) !== false) { $name = explode(‘,‘, $name); } else { $name = array($name); } } //修改部分开始 foreach($name as $key=>$val){ if(!$this->isExistsRule($val)){ unset($name[$key]); } } if(count($name)==0){ return true; } //修改部分结束 $list = array(); //有权限的name foreach ($authList as $val) { if (in_array($val, $name)) $list[] = $val; } if ($relation==‘or‘ and !empty($list)) { return true; } $diff = array_diff($name, $list); if ($relation==‘and‘ and empty($diff)) { return true; } return false;}/** * @desc 判断数据库是否存在权限 * @param string $name RuleName */public function isExistsRule($name){ static $rule = array(); if(!empty($rule[$name])){ return $rule[$name]; } $rule[$name] = M()->table($this->_config[‘AUTH_RULE‘])->where(array(‘name‘=>$name))->count(); return $rule[$name];}
ThinkPHP Authority.class.php 修改待验证的权限$name如果权限列表里面不存在则默认有该权限
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。