天天看点

rbac权限管理5张表_PHP之常用的RBAC权限管理详解

文章正文

在说权限管理前,应该先知道权限管理要有哪些功能:

(1)、用户只能访问,指定的控制器,指定的方法

(2)、用户可以存在于多个用户组里

(3)、用户组可以选择,指定的控制器,指定的方法

(4)、可以添加控制器和方法

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。

rbac权限管理5张表_PHP之常用的RBAC权限管理详解

1.数据库的设计

写五张表,首先:用户表、角色表、功能表:

rbac权限管理5张表_PHP之常用的RBAC权限管理详解

连接表的表..再来就是角色功能表与用户角色表:

rbac权限管理5张表_PHP之常用的RBAC权限管理详解

2.管理员的管理页面,

(1).分别显示用户名和角色名

(2).根据下拉用户名的变化,更改相应复选框中的角色

(3).修改用户角色时,先要把用户对应角色表,这个用户所有的信息删除,再把取到的用户名和角色代号新添加。

利用下拉列表:嵌入php查询并遍历出来,以下拉列表的方式显示出来

<?php include ("../db.class.php"); $db = new db(); $sql = "select * from qxyh"; $arr = $db->Query($sql); foreach ($arr as $v) { echo "{$v[2]}"; } ?>
           

选择角色,用多选框:

请选择角色<?php $sjs = "select * from qxzw";$ajs = $db->Query($sjs);foreach ($ajs as $v){ echo "{$v[1]} ";}?>

图:

rbac权限管理5张表_PHP之常用的RBAC权限管理详解

当用户发生变化的时候,相应的角色也相应变化,并且改变人员的角色信息,添加保存,添加保存的基本思路是先把数据库里人员对应的角色信息全部删除,然后再取到选中的部分,添加到数据库。

先来让他选中默认角色: