thinkPHP的RBAC权限管理

如何进行thinkPHP的rbac权限管理呢?下面是由百分网小编为大家整理的thinkPHP的RBAC权限管理,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业生考试网!

thinkPHP的'RBAC权限管理:

thinkphp自带一个权限类:RBAC.class.php,里面有生成表的create table语句,也就是它的数据库设计,还有一些方法,比如getAccessList(),可以根据管理员ID号获得权限节点。

1、涉及到的表有五个,为了方便理解,可以总结为:

用户表(user):顾名思义,就是用户了,比如admin、张三、李四、王五

角色表(role):顾名思义,就是定义好的角色,比如财务管理员、文章管理员、产品管理员

用户角色关系表(user_role):顾名思义,就是将用户和角色对应起来的表,看它的表结构,只有role_id(角色id)和user_id(用户id)两个字段

角色节点表(access):权限控制,也叫权限表,就是该角色(role)能控制哪些节点(node)。level字段对应node表的level字段。

这样就好理解了,其实就是用户、角色、节点三块。

先定义某个角色有权操纵某些节点,就是role表(角色)和node表(节点)和access表(权限)三个表的关系,这是核心部分,access又是核心中的核心。

然后,用户表可以单独和角色表挂钩,这就是user表和role表和user_role表的关系。

这样,就间接定义了哪些用户可以操纵哪些节点(模块)。

2、实际运行的时候,用户的所有可以操作的节点,可以记录到session当中,比如在初始化方法中写下这一句:

$_SESSION[‘rbac’]=RBAC::getAccessList($adminId);

这样打印session的时候,可以看到

[rbac] => Array

(

[ADMIN] => Array

(

[INFORMATION] => Array

(

[ADD] => 1

[MODIFY] => 2

[DEL] => 3

)

[PRODUCT] => Array

(

...

)

类似这样的数组结构。

最后需要注意的一点是RBAC的配置语句,可以到网上或者网查看相关的例子。

【thinkPHP的RBAC权限管理】相关文章:

php中rbac三张表的关系,thinkPHP的RBAC权限管理相关推荐

  1. php中rbac三张表的关系,thinkphp中RBAC数据表分析

    /// /// AC二元组.它是9种AC元素对象的二元组.但它区分Subject(主体)和Object(客体)从而为二元关系规定了方向. /// 9大AC元素是:Account.Organizatio ...

  2. php中rbac三张表的关系,财务人不可不知的三张表的关系

    原标题:财务人不可不知的三张表的关系 本文节选自<世界500强CFO的财务管理笔记>,作者郑永强资产负债表.利润表.现金流量表是三张最基本也是最重要的财务报表.这三者之间究竟是怎样的关系呢 ...

  3. 网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

    一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据 ...

  4. django 多对多表的创建,级联删除,手动创建第三张表

    创建一张作者表,author,创建外键与book表,多对多关系 ,外键字段放在那张表都可以, class Author(models.Model):name = models.CharField(ma ...

  5. 华为路由器:ospf协议三张表及邻居建立过程

    说明:本篇接上一篇继续讲解 拓扑图 为了方便,我把R1/2/3/4/5的router id改成了回环网卡的IP. ospf协议三张表 邻居表(neighbortable) OSPF用邻居机制来发现和维 ...

  6. 多对多关系需要建立中间表_【数据库基础】为什么需要三张表之多对多表结构设计...

    了解完一对一和一对多表结构设计,接下来一起了解一下多对多的表结构设计. 同样,咱们先来想一般什么场景需要用到多对多.假如说咱们有一个叫订单和一个叫商品的这两张表,这两张表的关系,它其实就是一个多对多的 ...

  7. postgresql中连接两张表更新第三张表(updata)

    目录 前言 准备数据库和表 表1 表2 最终员工表 SQL语句 扩展:with语句 前言 在工作中可能会遇到需要结合两张表的数据来添加到第三张表,或者说是第三张表数据有误,需要覆盖更新,本章通过举例来 ...

  8. mysql中3张表如何关联查询_mysql三张表关联查询

    三张表,需要得到的数据是标红色部分的.sql如下: select a.uid,a.uname,a.upsw,a.urealname,a.utel,a.uremark, b.rid,b.rname,b. ...

  9. 阿里规定超过三张表禁止JOIN,为啥呢?

    作者 | e71hao 来源 | http://blog.itpub.net/30393770/viewspace-2650450/ 一. 问题提出 <阿里巴巴JAVA开发手册>里面写超过 ...

最新文章

  1. 【错误记录】Groovy 工程编译报错 ( java.lang.NoClassDefFoundError: org/apache/tools/ant/util/ReaderInputStream )
  2. C/C++打造《百万级人脸识别系统》
  3. 2017 Google 开发者大会直播入口
  4. HDF及HDF-EOS数据格式简介
  5. 【oracle11g,17】存储结构: 段的类型,数据块(行连接、行迁移,块头),段的管理方式,高水位线...
  6. 数据分析初学者必备!10分钟搭建RFM客户价值模型,一学就会
  7. 如何建立个人网站?先分享一下
  8. linux什么系统以dd镜像写入,linux下使用dd命令写入镜像文件到u盘
  9. 小火狐进化_神奇宝贝:最强和最弱的御三家属于哪个世代?当然是这两代
  10. git版本管理软件——git储藏
  11. dreamer Waver cc 2014 安装失败解决
  12. MacOS下无屏幕通过共享WiFi的方式为树莓派4B安装64-bit系统
  13. 华为鸿蒙生态班怎么上,华为联合西北工业大学开设“鸿蒙生态菁英班”: 50 人左右...
  14. SMTP 协议邮件发送工具封装
  15. 数据准备 ——报表开发中的深层次问题
  16. 基于Qt 5.7.0的适合Window XP系统的应用开发
  17. 【FAQ】软件保护系统Themida常见问题集锦(二)—“Taggant信息”功能的用途是什么?...
  18. el-tree 扁平数据 树形结构递归处理
  19. cocos2d 高仿doodle jump 无源码
  20. 魔兽地图编辑器插件 YDWE 触发器函数转化成jass代码 以及转化为自定义文本后重新转化为触发器函数

热门文章

  1. 【Linux】Shell(Bash)单引号、双引号、不加引号和反引号用法和区别详解
  2. rust和漫漫长夜_生活太惬意?尝试生存吧!这儿有23款最棒的生存类游戏
  3. HTML5中a袁术的属性,袁术使用方法,技巧,配合全攻略
  4. 战狼2百度云资源Mp4观看【Mp4/2.5G国语BD】战狼2云盘链接迅雷BT下载edk
  5. 美国版战狼—12勇士
  6. mac APP软件是32位还是64位
  7. 第6章 DNF软件包管理工具
  8. 爱奇艺流量反作弊的“术”与“道”
  9. Valine评论之Valine-admin配置攻略
  10. 微擎学习随记_常用功能实现