这里,主要补充的是配置以及相关代码问题。

<?php
return array(
//'配置项'=>'配置值'
'RBAC_SUPERADMIN' => 'admin',//超级管理员名称,对应用户表中某一个用户:username
'ADMIN_AUTH_KEY' => 'superadmin',//超级管理员识别 'USER_AUTH_ON' => true, //是否需要认证
'USER_AUTH_TYPE' => 1, //认证类型 1-登陆后认证,2-实时认证
'USER_AUTH_KEY' => 'authId', //认证识别号,此处可以自定义
//'REQUIRE_AUTH_MODULE' => '', //需要认证模块
'NOT_AUTH_MODULE' => 'User,Index,Safe', //无需认证模块,和上面重复
'NOT_AUTH_ACTION' => 'addRoleHandle,addNodeHandle,addUserHandle,accessHandle',//无需认证操作
//'USER_AUTH_GATEWAY' => '', //认证网关,此处可以不用
//'RBAC_DB_DSN' => '', //数据库连接DSN
'RBAC_ROLE_TABLE' => 'tp_role', //角色表名称
'RBAC_USER_TABLE' => 'tp_role_user', //用户表名称
'RBAC_ACCESS_TABLE' => 'tp_access', //权限表名称
'RBAC_NODE_TABLE' => 'tp_node', //节点表名称

aaarticlea/png;base64,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" alt="" />这个一栏作为菜单,必定有其相应的代码:

 //左边菜单
public function left(){
// var_dump(session('role-id')); $this -> assign("ouba",session('role-id'));
//超级管理员
if(session(C('ADMIN_AUTH_KEY'))){
$node = D('Tp_node') ->relation(true)-> where('level = 2') -> order('sort')-> select();
}else{
//取出所有权限节点
$node = D('Tp_node') ->relation(true)-> where('level = 2') -> order('sort')-> select();
//取出当前登录用户所有权限(英文名称)和操作权限
$module = '';
$node_id = '';
$accessList = $_SESSION['_ACCESS_LIST'];
foreach($accessList as $key => $value){
foreach($value as $key1 => $value1){
$module = $module.','.$key1;
foreach($value1 as $key2 => $value2){
// $node_id = $node_id.','.$key2;
$node_id = $node_id.','.$value2; }
}
} //去掉没有权限的节点
foreach($node as $key => $value){
if(!in_array(strtoupper($value['name']),explode(',',$module))){
unset($node[$key]);
}
else{
//模块存在,比较里面的操作
foreach($value['node'] as $key1 => $value1){
// if(!in_array(strtoupper($value1['name']),explode(',',$node_id))){
if(!in_array(strtoupper($value1['id']),explode(',',$node_id))){
unset($node[$key]['node'][$key1]); //一层一层下来,删除此操作
}
}
}
}
}
$this -> assign('node',$node);
$this->display();
}

注意几点:该函数方法主要对于权限的节点的处理,其中使用的“大D”,则在Model,中必有其对应的映射关系:

<?php
namespace Manage\Model;
use Think\Model\RelationModel;
class TpNodeModel extends RelationModel{
protected $_link = array(
'Tp_node'=>array(
'mapping_type'=> self::HAS_MANY,
'parent_key'=>'pid',
// 'class_name'=> 'Article',
'foreign_key'=> 'id',
'mapping_name' => 'node',
// 'mapping_order' => 'create_time desc', ),
);
} ?>

ThinkPHP项目笔记之RBAC(权限)补充篇的更多相关文章

  1. ThinkPHP项目笔记之RBAC(权限)基础篇

    今天,总结一下,RBAC(基于角色的访问控制),直白一点,就是权限管理.说到这,不得不“小叙”一下,我第一次 开发权限管理功能的“插曲”.第一次做这个,真的不会,我只知道“有点印象”,当时任务落到我的 ...

  2. ThinkPHP项目笔记之RBAC(权限相关视频讲解篇

    感谢互联网,只要你愿意找,没有找不到的免费资源 网址:http://www.studyfox.cn/143.html

  3. ThinkPHP项目笔记之RBAC(权限)中篇

    现在,说说添加权限,权限管理列表 c.添加权限

  4. ThinkPHP项目笔记之RBAC(权限)上篇

    当理清这5个表的关系,接下来,就是功能介绍了.

  5. ThinkPHP项目笔记之RBAC(权限)下篇

    接着谈谈:添加用户以及用户管理列表 e.添加用户

  6. ThinkPHP项目笔记之MVC篇

    题记:网上关于ThinkPHP的介绍,不计其数,有文档,示例,代码片段以及其他等.毕竟自己掌握的,才是自己的. 所以,趁着做的项目(当然用的是thinkphp框架)的余热,奋笔疾书,一个人的理解与拙笔 ...

  7. ThinkPHP项目笔记之模板篇

    顾名思义:模板就是网页页面,有的是静态,有的的动态 基本语法: 1. <li><a href="{:U('User/searchlist')}">返回列表& ...

  8. ThinkPHP项目笔记之登录,注册,安全退出篇

    1.先说注册 a.准备好注册页面,register.html,当然一般有,姓名,邮箱,地址等常用的. b."不要相信用户提交的一切数据",安全,安全是第一位的.所以要做判断,客户端 ...

  9. ThinkPHP项目笔记之函数篇

    说到函数,可能有人会想:框架的C(控制器)通牌都是函数构成的,没有必要讲吧. 当然,我要说的是,公共函数:function.php,该文件就是为了开发一下功能准备的,比方说,某个功能,a地方可用,b地 ...

随机推荐

  1. ffmpeg Win8移植记(二)

    接着上回说,http://www.cnblogs.com/zjjcy/p/3384517.html 上回移植了ffmpeg在ARM上面,只是纯C的代码,没有做汇编的优化.因为ffmpeg的ARM汇编是 ...

  2. 谋哥:我跟CEO们都说了啥

    昨天,我和谋天团会员杨过(cdywq7070)--杨总,聊他公司的App,针对女性社交的"闪聊". 杨总增加谋天团,主要是想让我帮他策划推广,我说你让我策划一次.还不如增加谋天团. ...

  3. 【Redis】redis 五种数据结构详解(string,list,set,zset,hash)

    redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...

  4. SQL数据库异地备份

    服务器:windows sever 2008(简称为A) 数据库:SQL server 2008 R2(安装在A上) 普通台式机:windows 7(简称为B) 目的:将A中的数据定时自动备份到B中 ...

  5. axure rp 8.0

    授权人:University of Science and Technology of China (CLASSROOM) 授权密钥:DTXRAnPn1P65Rt0xB4eTQ+4bF5IUF0gu0 ...

  6. 超级干货,python常用函数大总结

    我们在学习python的时候,接触最多的往往则是那些函数,对于python函数,在这里为大家总结归纳了这些,如果有缺漏,还请及时留言指正哦! 话不多说,干货来袭! 1.常用内置函数:(不用import ...

  7. 复制Map对象:Map.putAll方法

    复制Map对象:Map.putAll方法 Map.putAll方法可以追加另一个Map对象到当前Map集合 package xmu.sxl; import java.util.HashMap; imp ...

  8. solr 查询参数说明

    solr 查询参数说明

  9. ajax提交gb2312的中文,出现乱码

    解决方案:

  10. C# 编写Windows服务在VS中调试的步骤

    1.以管理员身份运行cmd 2.安装windows服务 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(InstallUtil.exe的路径,注意In ...