RBAC对于ThinkPHP初学者来说总感觉太复杂,但是权限认证与管理是非常重要且常用的功能,所以我这里算是以学习笔记的形式与大家共同学习。 如题所示,这个帖子主要分为三个部分:分析、应用、优化。分析部分主要了解下RBAC到底是什么,并分析数据库结构,做好应用准备;应用部分以示例项目来看RBAC是如何工作的,对RBAC有个全面的了解;优化部分主要是讲在我们的项目部署时怎么简化RBAC用于实际建站。分析与应用部分我们均以传统方式来部署,优化部分大家可以提出自己的优化方法。
一、分析 RBAC:基于角色的访问控制(Role-Based Access Control),参见百度百科。 用户,角色,节点:用户本身并没有权限,角色才具有控制节点的权限,所以另外还需要有用户与角色的关系、角色与节点的关系,即用户属于什么角色、角色具有 哪些节点的控制权。角色(role) murano pendants虽然不等同于用户组(group),但是这里把角色看成是用户组可能更好理解这种关系吧。 为了使这种结构更明晰,我们先看一下数据库的数据表。
从上图可以看出RBAC的执行流程:(首先判断是用户是否登录,没有登录的话会跳转到入口页)有了目前登录的用户,根据“用户-角色关系表”判断用户属于哪个角色,根据“角色-节点关系表”判断角色具有哪些节点的权限。 再看看这几个表:用户、角色、节点都有id和name,这非常好理解吧。节点表还有pid(父级id)和level(节点对应的级别)。也就是说节点表里面不同节点可以继承,另外级别分为1,2,3分别对应项目、模块、操作。关系表建立起关系,把不同表的id Fashion jewelry对应起来。
怎么样,是不是对数据库的结构比较清晰了呢?可以开始建立好这样的表,准备建立应用哦。 (ThinkPHP的示例中有建好的对应的几个表,差不多,只是多一些字段) |
转载于:https://www.cnblogs.com/imadin/archive/2011/05/18/2050150.html