这里有几个概念

权限:

指用户是否可以执行哪些操作,如:编辑、发布、查看回帖

角色

比如:VIP用户组, 高级会员组,中级会员组,初级会员组

VIP用户组:发帖、回帖、删帖、浏览权限

高级会员组:发帖、回帖、浏览权限

中级会员组:回帖、浏览权限

初级会员组:浏览

在Yii2.0中

  • yii\rbac: Item  为角色或者权限的基类,其中用字段type来标识。1代表角色,2代表权限
  • yii\rbac: Role  为代表角色的类
  • yii\rbac: Permission  为代表权限的类
  • yii\rbac: Assignment  为代表用户角色或者权限的类
  • yii\rbac: Rule  为代表角色或权限能否执行的判定规则表

auth_item 存储权限和角色,如下图所示:

auth_item_child 表是权限和角色从属关系,如下图所示:

大概了解上面的概念后,我们具体看具体怎么实现的。

1、在config中console.php配置RBAC组件,如下图

PS:

有的文章写的是PhpManageer,如果是这样的话,在运行会报错。

然后运行

yii migrate --migrationPath=@yii/rbac/migrations/

成功执行,产生权限表。

2、首先要在web.php配置下RBAC的组件。

添加authManager组件,下面的xxxTable可以不用添加,默认就是这样的。

这时候,我们刷新下前台页面,正常。这就说明配置方面没有问题。

这时候,我们来看下如何创建角色、权限、角色与权限方面的问题

我们随便创建个Controller,这里我用IndexController,只要能访问到这个Controller就行,无所谓哪个控制器。

1、如何创建权限

然后访问

http://yii.local.com:/index.php?r=admin/index/create-permission&item=index

必须带参数,$item就是你要创建的权限。如:post-发帖,edit-编辑,update-更新,view-浏览,index-查看首页等等

2、创建角色

同样的道理,访问

http://yii.local.com:8090/index.php?r=admin/index/create-role&item=vip_user

这时候,我们创建了个vip_user用户组。

3、如何将某角色拥有某权限OR如何将某权限纳入进某角色

$item1 是角色,$item2 是权限

http://yii.local.com:8090/index.php?r=admin/index/create-empowerment&item1=vip_user&item2=edit

将edit权限放进vip_user角色,即vip_user用户组有edit权限

4、如何将某用户加入某角色(用户组)中

浏览器访问

http://yii.local.com:8090/index.php?r=admin/index/create-assign&item1=post&item2=1

意思是将uid=1的用户赋予发帖的权限

http://yii.local.com:8090/index.php?r=admin/index/create-assign&item1=vip_user&item2=1

意思是将uid=1的用户赋予vip_user用户组的权限

这里说明下,某用户可以属于某个用户组即角色,也可以具有某个权限。

如果某操作不在auth_item_child表的child中,将会

以上只是对RBAC做简单介绍。具体我们可以将这些功能丰富之后,写入后台。

  

yii2的权限管理系统RBAC简单介绍的更多相关文章

  1. Winform开发框架之权限管理系统的改进

    权限管理系统,一直是很多Mis系统和一些常见的管理系统所需要的,所以一般可以作为独立的模块进行开发,需要的时候进行整合即可,不需要每次从头开发,除非特殊的系统需求.我在Winform开发框架介绍中的随 ...

  2. asp.net core 身份认证/权限管理系统简介及简单案例

    如今的网站大多数都离不开账号注册及用户管理,而这些功能就是通常说的身份验证.这些常见功能微软都为我们做了封装,我们只要利用.net core提供的一些工具就可以很方便的搭建适用于大部分应用的权限管理系 ...

  3. Spring Cloud实战: 基于Spring Cloud Gateway + vue-element-admin 实现的RBAC权限管理系统,实现网关对RESTful接口方法权限和自定义Vue指令对按钮权限的细粒度控制

    一. 前言 信我的哈,明天过年. 这应该是农历年前的关于开源项目 的最后一篇文章了. 有来商城 是基于 Spring Cloud OAuth2 + Spring Cloud Gateway + JWT ...

  4. yii2权限控制rbac之rule详细讲解

    作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留 ...

  5. javaweb+SSH实现简单的权限管理系统

    权限管理,平时里很多地方我们都可以看到,比如聊QQ时群里的群主.管理员以及成员之间的功能是不一样的--大家一定会遇到的一个问题,所以整理 一下自己写权限系统的一些经验给大家,只起参考作用,也望大家笑纳 ...

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

    在我们之前yii2搭建后台以及rbac详细教程中,不知道你曾经疑惑过没有一个问题,rule表是做什么的,为什么在整个过程中我们都没有涉及到这张表? 相信我不说,部分人也都会去尝试,或百度或google ...

  7. 基于RBAC模型的通用企业权限管理系统

    1. 为什么我们需要基于RBAC模型的通用企业权限管理系统 管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁.构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的.权限 ...

  8. thinkphp整合系列之rbac的升级版auth权限管理系统demo

    权限管理基本是作为网站的标配了: 除非是像博客这类个人使用的:否则权限管理的重要性不言而喻: 今个就来写写auth权限管理: thinkphp已经内置了auth权限类位于:/ThinkPHP/Libr ...

  9. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十三节--RBAC模式及ABP权限管理(附送福利)

    ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate- ...

随机推荐

  1. Android之数据存储的五种方法

    1.Android数据存储的五种方法 (1)SharedPreferences数据存储 详情介绍:http://www.cnblogs.com/zhangmiao14/p/6201900.html 优 ...

  2. U盘安装Kali 出现cd-rom无法挂载 已解决

    用U盘安装Kali Linux的过程中,出现cd-rom无法挂载的现象,百度坑比啊,醉了.下面亲测成功 出现无法挂载后,选择执行shell 第一步:df -m此时会看到挂载信息,最下面的是/dev/* ...

  3. 一点公益商城开发系统模式Ring Buffer+

    一个队列如果只生产不消费肯定不行的,那么如何及时消费Ring Buffer的数据呢?简单的方案就是当Ring Buffer"写满"的时候一次性将数据"消费"掉. ...

  4. 从零开始,DIY一个jQuery(2)

    在上篇文章我们简单实现了一个 jQuery 的基础结构,不过为了顺应潮流,这次咱把它改为模块化的写法,此举得以有效提升项目的可维护性,因此在后续也将以模块化形式进行持续开发. 模块化开发和编译需要用上 ...

  5. Windbg Extension NetExt 使用指南 【1】 ---- NetExt 介绍

    摘要 : 在使用WINDBG做debugging的时候,需要一个好的工具帮助进行数据分析. 最常见的extension包括SOS, PSSCOR.  NetExt则是另外一种提供了丰富命令功能的deb ...

  6. 我的第一个python程序--给2.x的print代码加上括号

    最近想学习一门脚本语言,综合考虑,选择了python. 花了几天时间看完了 简明 Python 教程 ,想着应该写点什么东西才好,刚好我使用的是3.x版本,以前好多2.x的代码都直接报错,尤其是pri ...

  7. windows phone如何才能在中国翻身?

    最近的新闻告诉我们,Android和IOS的系统继续保持市场领先,并且Android的市场份额达到了历史最高点. 做为windows phone的消费者,作为微软粉丝,我感到十分的不爽. 前几天MIU ...

  8. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  9. 从 Everything 到 Listary,自 Launch 归 Wox

    人生即在于体验,而体验源于去尝试,去折腾,去改变,去塑新.要知道:"过一个平凡无趣的人生实在太容易了,你可以不读书,不冒险,不运动,不写作,不外出,不折腾--但是,人生最后悔的事情就是:我本 ...

  10. Apache thrift RPC 双向通信

    在上一篇介绍Apache thrift 安装和使用,写了一个简单的demo,讲解thrift服务的发布和客户端调用,但只是单向的客户端发送消息,服务端接收消息.而客户端却得不到服务器的响应. 在不涉及 ...