php语言

thinkPHP的RBAC权限管理

时间:2024-08-13 18:50:49 php语言 我要投稿
  • 相关推荐

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权限管理】相关文章:

ThinkPHP中自动验证07-26

分析thinkphp常见路径用法分析10-29

ThinkPHP中redirect用法实例分析09-26

Linux操作系统学习笔记权限管理09-26

ThinkPHP中create()方法自动验证表单信息09-10

JAVA的数据权限设计05-28

Win10更改盘符名称需要管理员权限10-21

理解Java访问权限的控制07-22

Linux chmod命令及权限的理解07-31

Thinkphp搜索时首页分页和搜索页保持条件10-19