文档章节

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

冰糖710
 冰糖710
发布于 2015/05/13 15:52
字数 273
阅读 11
收藏 0
//获得权限$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];
}

  

本文转载自:http://www.cnblogs.com/hxtgirq710/p/3972525.html

冰糖710
粉丝 4
博文 10
码字总数 0
作品 0
程序员
私信 提问
ThinkAdmin v5.0 发布,基于ThinkPHP5.1后台开发框架

大道至简 · 原生框架 ThinkAdmin v5 是一个基于 ThinkPHP 5.1 和 ThinkLibrary 开发的后台管理系统。 我们致力于二次开发底层框架,提供完整的组件及API,基于此框架可以快速开发应用,另外...

邹景立
08/06
4.1K
6
ThinkPHP 3.0 + Rbac 应用示例

此为Rbac在ThinkPHP中应用的实例,用到了ThinkPHP的Rbac扩展,样式比较难看,大家将就的看。此例子旨在学习交流使用,勿用于实际项目中。 Rbac简单说来就是基于“角色”的权限控制,所有用户...

王昊然
2012/10/16
6.6K
8
XAMPP和ThinkPHP 5.0的安装和验证

工欲善其事必先利其器,对搞开发的攻城狮来讲,其器就是各种开发工具和开发环境,而这些在刚入门的时候由于不熟悉,往往是花费时间和精力最多的地方。记得我上大学那会,自学PHP光安装Apach...

仃虽楠
2018/05/09
0
0
!求助:ubuntu下thinkphp框架生成目录权限的问题

!求助:ubuntu下thinkphp框架生成的Application目录中的文件权限都是755, 能否改变, 使其生成时就是777. 另外, 使用thinkphp, 上传文件时, 生成的名字为日期的目录权限无法改变。用upl...

xkeos
2014/05/03
3.7K
5
网站安全检测 网站漏洞修复 对thinkphp通杀漏洞利用与修复建议

thinkphp在国内来说,很多站长以及平台都在使用这套开源的系统来建站,为什么会这么深受大家的喜欢,第一开源,便捷,高效,生成静态化html,第二框架性的易于开发php架构,很多第三方的插件...

网站安全
2018/09/05
151
0

没有更多内容

加载失败,请刷新页面

加载更多

前端面试题汇总

一. HTML常见的兼容性 1.HTML5 标签在低版本浏览器不兼容 解决办法:使用html5shiv库,引入下列语句 <!--[if lte IE 8]> <script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></sc......

蓝小驴
19分钟前
3
0
OSChina 周四乱弹 —— 我气的脸都黑了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐《Red Battle》- 高橋李依 / 豊崎愛生 《Red Battle》- 高橋李依 / 豊崎愛生 手机党少年们想听歌,请使劲儿戳(这里) @丶Lion ...

小小编辑
32分钟前
383
18
找OSG教程, B站就有

https://www.bilibili.com/video/av64849038?from=search&seid=11632913960900279653

洛克人杰洛
53分钟前
4
0
学习记录(day07-Vue组件、自定义属性、自定义事件)

[TOC] 1.1.1什么是组件 一个vue文件就是一个组件 组件将html标签/css样式/对应JS打包成一个整体,也可以理解钻进一个具有样式和特效的自定义标签。 一、编写组件(提供方)<template> <di...

庭前云落
58分钟前
4
0
使用Prometheus监控SpringBoot应用

通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用。(本文以SpringBoot 2.1.9.RELEASE 作为监控目标) 编码 添加依赖 使...

JAVA日知录
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部