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];
}

  

时间: 2024-12-29 11:43:07

ThinkPHP Authority.class.php 修改待验证的权限$name如果权限列表里面不存在则默认有该权限的相关文章

记我兵荒马乱的一周(0808-0812)--用户反馈及修改点验证

夜深了,但我还不愿睡去,总觉得应该对上周那五天兵荒马乱的工作生活做个总结备忘,心里有个底,才能睡得踏实. 上周主要做了3件事,那便一个个讲起. 第一件事:测试用例的执行 在这件事上,没有出太大的问题,基本是属于回归测试和冒烟测试,因为是很成熟的产品,回归一般问题比较少,冒烟测试的话,新开发出的软件BUG很多,找起来也相对容易. 不过作为下周的常规工作之一,还是需要注意以下几点 : 1. 提升用例执行的速度,每次的用例,执行起来都会有一些不懂意思的或不知道如何执行的,或许跟其他人交流下最开始是如何

ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)

原文:ThinkPHP 自动创建数据.自动验证.自动完成详细例子介绍(十九) 1:自动创建数据 //$name=$_POST['name']; //$password=$_POST['password'];  ---这个注册页面传过来的POST值 下面用了自动穿件create方法就可以不用这个,会行动绑定 $user =M('User'); $User->create();   //会将传过来的$_POST数据对应到数据库的字段 $user->add();   //就可以直接写入 2:自动验证

修改OWA验证方式及分配证书服务

大家好,由于最近在做一个项目,所以有几天没有跟大家一起分享关于Exchange的内容了,今天就来给大家讲一个之前与到的故障问题及解决办法,希望能够帮助到大家今后的TroubleShooting. 首先,我先还原一下当时的一个场景.有一家公司,目前使用的是Exchange 2013的邮件系统,并且使用的是TMG2010在做邮件发布.最近该公司购买了通配符证书,想再TMG上更改通配符证书,但是无论如何更改与配置,Exchange的发布一直有问题.查阅了很多资料,发现很多达人说是TMG和通配符证书存在

Thinkphp框架中自定义修改success和error页面

Thinkphp框架中自定义修改success和error页面 Thinkphp框架的默认success和error太难看,可以自定义设置,步骤如下: (注意:TP原框架中的success跳转有问题,先修改框架内容) 在TP的Controller.class.php中L284行下增加exit; 1.修改配置文件,增加自定义页面路径(在Admin模块下的config.php中增加) // 跳转页面模板 'TMPL_ACTION_ERROR' => MODULE_PATH.'View/Common/

Liferay 6.2 改造系列之二十:修改默认添加用户权限及用户是否拥有个人站点的配置

1.修改默认添加用户权限为User,而非Powers User: 在/portal-master/portal-impl/src/portal.properties文件中有如下配置: # # Input a list of default role names separated by \n characters that are # associated with newly created users. # admin.default.role.names=Power User\nUser

PHP自练项目中个人中心创建,修改,验证(服务器端和客户端验证)

当注册成功到登录后进入个人中心,查看和修改自己的资料 第一步:创建个人中心: <?php //定义个常量,用来授权调用includes里面的文件 define('IN_TG',true); //定义个常量,用来指定本页的内容 define('SCRIPT','member'); //引入公共文件 require dirname(__FILE__).'/includes/common.inc.php'; //是否正常登录 if (isset($_COOKIE['username'])) { //获

通用的前端修改密码验证

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>修改密码的验证</title> </head> <h1>修改密码</h1> <b id="passModifyMess" style="color: red;"></b> <form actio

修改ActiveReports验证文字“给不能为 null 的参数指定一个 null 值”

目前问题: 运行结果: QQ截图20140911171128.png(14.68 K) 2014-9-12 11:02:28 CODE 为王,直接奉上. $(document).ajaxSend(function (e, xhr, o) { // 截获RunReport请求 if (o.url.indexOf('/ActiveReports.ReportService.asmx/RunReport') > 0) { xhr.abort(); // 终止AR默认请求 $.ajax({ type:

ThinkPHP模板继承和修改title

先说下模板继承: 假定:在View文件夹中 -> Public  公共模块 ->base/header/top/footer 4个html文件 这下面base文件使用include引入其他3个文件,其中title用block标签,给个name属性,在不同的模板中可以实用block来重新定义title值, block 标签,属性是main的可以,在不同的模板的写不同的内容 <!DOCTYPE html> <html lang="en"> <hea