Yii2 RBAC权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2 RBAC权限相关的知识,希望对你有一定的参考价值。

什么是rbac ?

rbac是就是基于角色的访问控制。

yii提供一套基础的底层接口,我们知道,rbac经历好几个阶段,从rbac0到rbac3,从基础的用户、角色、权限,到动态的rbac处理模式,再到现在的权限继承,解决复杂的多页面元素权限分配。

总而言之,rbac有三个特性。

1. 基础:

角色、权限、用户 三大体系。

2. 权限继承:

角色派生原则,一个角色可以派生多个低权限角色。例如:总经理 =》经理、副经理、营运等

3. 权限分配:

权限分配必须从基础权限到高级权限,如果想拥有高级权限必须现拥有基础权限。例如:一个系统,我想拥有所有的权限。首先,我们必须现拥有查看所有菜单和子菜单的权限,然后,在拥有页面元素操作的权限,即增、删、改、查及其他。

yii提供的接口,实现了rbac的基础功能,路由的控制、页面元素和菜单的显示、隐藏等。作为合格的程序员,思想的层次有时候决定你的技术层次。因为yii提供了基础,那么我们可以在它的接口上结合具体项目需求去拓展rbac的功能。

具体如下:

我需要一个菜单表,来存储的模块,以垂直分表 的形式,实现无限极目录。

表字段:  name(名称:primary key)   route(路由)  pid(父ID) ...

此表以三级联动,动态的添加权限、角色,记录模块的层次等级,菜单=》子菜单=》功能、页面元素。

例如:

权限管理      伪路由:permission/index      父ID   0         

添加权限: 权限:permission/index      类型: 1

添加角色: 权限管理           类型 : 2

绑定权限: 权限管理      permission/index  

 

角色分配:  角色: 总经理      权限: 权限管理

用户权限: admin          总经理

也许大家可能看不懂,但是如果熟悉yii底层rbac基础接口,就容易理解啦,因为yii提供了现有的一套完善的rbac权限逻辑,所以,我们只需要在其基础上去拓展。  这里需要在添加一个数据表格role表,用于客户端角色分配,客户端只需要去创建角色,并分配好角色权限,便可绑定用户。这里存在一个问题,就是刚开始说的模块化系统中,功能按钮过多问题。所以,我们一个在一个高级角色的基础上,去派生用户所需要的角色。

例如:

总经理   

拿到总经理的权限,在其基础上去,分配经理、副经理的角色。分配用户。

-- 每日一博

 

     

以上是关于Yii2 RBAC权限的主要内容,如果未能解决你的问题,请参考以下文章

讲堂 | Yii2之rbac(基于角色的权限管理)-- 思想与配置

Yii2 restful接口方式开发,权限控制(yii2-rest-rbac)

yii2权限控制rbac之rule详细讲解(转)

Yii-backadmin|Yii2做的rbac后台通用权限的管理系统

Yii2 yii2mod/yii2-rbac

yii2 后台怎么直接用/admin