码迷,mamicode.com
首页 > 其他好文 > 详细

Yii2 RBAC权限

时间:2018-06-24 00:55:22      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:index   nbsp   yii2   接口   模块   开始   类型   需要   现在   

什么是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权限

标签:index   nbsp   yii2   接口   模块   开始   类型   需要   现在   

原文地址:https://www.cnblogs.com/hellow-world/p/9219174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!