多语言展示
当前在线:1581今日阅读:60今日分享:41

ThinkPHP的RBAC原理分析

最近我们项目上遇到了权限控制不断在代码中添加ifelse,不断重复这样的操作,代码耦合太强,每次修改都要动大手术,到现在,写那断代码的同事自己也搞的晕乎乎的,因为很容易,自己改着这,就忘了改那了,这让我想到,为什么不直接用权限控制呢?而我自己也好久没接触RBAC这块了,今天就和大家一起复习下RBAC的原理。
工具/原料
1

ThinkPHP

2

代码编辑器

方法/步骤
1

多用户对节点的操作的权限控制,这句话,经过反复扩展功能,就可以得出5张表。用户->用户表既然是多用户,就有很多相同权限的用户,比如浏览网站的用户,太多了,这样就有了第二张表。多用户->用户组表(比如普通用户、编辑、管理员)

2

用户和用户组的关系是多对多(比如一个人既可以是管理员,又可以是编辑),所以需要一个用户_用户组关系表

3

节点,有很多节点了,比如文章的管理(CURD),相册的管理,所以需要一张节点表。节点与用户组中间需要一个用户组和节点的关系表,也就是最重要的权限控制表。这样,通过用户组_节点_权限控制表就能控制具体用户的对每个节点的使用权限了。

推荐信息