yii2 rbac权限管理

Yii2是一个好的web开发框架, 其中也提供了对RBAC权限管理的支持。RBAC就是Role-Based Access Control(基于角色的访问控制)的简写,具体请看百度百科,http://baike.baidu.com/view/73432.htm

核心思想就是我把一系列的许可组合在一起,成为一个角色。第一个用户可以扮演多个角色,只要这多个角色中的其中一个角色可以做的事,此用户就可以做。

在Yii2中,RBAC模型如下图所示。

yii2 权限管理模型

角色(Role)和许可(Permission)之间是一种层级关系,除了Role不能成为Permission的子项之外,支持所有其它的关系。也即角色可以有子角色,角色可以有子许可,许可也可以有子许可。这带来的好处就是角色和许可可以自由的组合,便于衍化出新的角色。

第一个许可或角色可以有一个规则(Rule),这个规则是用来控制哪些条件下不允许访问的。比如我可以设置所有的员工可以发帖,这是许可。然后我可以设置一条规则,所以的员工只有在上班时间才可以发帖,也就是说哪怕一个用户拥有“员工”这个角色,规则依然可以禁止他在某些条件下的访问。



文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 8352