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表,用于客户端角色分配,客户端只需要去创建角色,并分配好角色权限,便可绑定用户。这里存在一个问题,就是刚开始说的模块化系统中,功能按钮过多问题。所以,我们一个在一个高级角色的基础上,去派生用户所需要的角色。

例如:

总经理

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

-- 每日一博

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

时间: 2024-08-29 20:09:34

Yii2 RBAC权限的相关文章

yii2 rbac权限控制之菜单menu详细教程

%E5%90%91%E9%87%8F%E8%87%AA%E5%9B%9E%E5%BD%92%E6%A8%A1%E5%9E%8BVS%E9%A3%8E%E9%99%A9%E4%BB%B7%E5%80%BC%E6%A8%A1%E5%9E%8BVAR%26VaR http://auto.315che.com/x5m/qa23893599-2.htm ????aXAoUXbKE?W??Ё???? http://auto.315che.com/rongwei550/qa23847097.htm ????P

下面介绍一个 yii2.0 的 Rbac 权限设置,闲话少说,直接上代码,

1.首先我们要在组件里面配置一下 Rbac ,如下所示(common/config/main-local.php或者main.php). 'authManager' => [ 'class' => 'yii\rbac\DbManager', 'itemTable' => 'auth_item', 'assignmentTable' => 'auth_assignment', 'itemChildTable' => 'auth_item_child', ], 当然,在配置里面也

yii2搭建完美后台并实现rbac权限控制案例教程

作者:白狼 出处:www.manks.top/article/yii2_frame_rbac_template 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/config/main-local.php 实际项目中本地的数据库往往跟线上数据库不一致, 我们这里配置到mai

yii2 Rbac实例 (做完以下这些 会有些小的报错,相信各位都能解决,大多数都是自己命名空间上的问题)。

首先我自己没有使用自带的user表 要想使用yii rbac组件 首先需要在我们的配置文件中开启 rbac组件 在common/config/main-local.php 中添加 下边的组建 'authManager' => [    'class' => 'yii\rbac\DbManager',    'itemTable' => 'auth_item',    'assignmentTable' => 'auth_assignment',    'itemChildTable

Yii2-admin RBAC权限管理的实现

yii2-admin是yii2 rbac的一套管理工具,实现了漂亮的界面和完整的权限管理功能,不用自己再去写权限代码了,使用之前请将yii2的源码更新到最新版本. git源码地址:https://github.com/mdmsoft/yii2-admin 安装yii2-admin: 1.首先切换到项目目录下 2.执行该语句:composer.phar require mdmsoft/yii2-admin 注:如果提示could not open input file composer.phar

RBAC权限管理

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限. 这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版内的帖子.可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接

RBAC权限管理系统

权限控制应该是分为3类: 菜单级别 页面元素级别 数据级别 RBAC介绍 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用户-角色-权限"的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个OA系统,"管理员"."

TP支持菜单动态生成RBAC权限系统数据库结构设计方案

最简单基于RBAC权限系统数据库结构设计 包括如下几个表 1. 用户表 -- Table "t_user" DDL CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(100) DEFAULT NULL, `password` varchar(100) DEFAULT NULL, `name` varchar(100) DEFAULT NULL, `status` int(11

ASP.NET 系列:RBAC权限设计

权限系统的组成通常包括RBAC模型.权限验证.权限管理以及界面访问控制.现有的一些权限系统分析通常存在以下问题: (1)没有权限的设计思路 认为所有系统都可以使用一套基于Table设计的权限系统.事实上设计权限系统的重点是判断角色的稳定性和找出最小授权需求.角色的稳定性决定了系统是通过角色判断权限还是需要引入RBAC方式,最小授权需求防止我们过度设计导致超出授权需求的权限粒度. (2)没有独立的RBAC模型的概念 直接使用实体类表示RBAC模型,导致本身本应该只有几行代码且可以在项目级别复用的R