这里有几个概念

权限:

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

角色

比如: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. 安卓GreenDao框架一些进阶用法整理

    大致分为以下几个方面: 一些查询指令整理 使用SQL语句进行特殊查询 检测表字段是否存在 数据库升级 数据库表字段赋初始值 一.查询指令整理 1.链式执行的指令 return mDaoSession. ...

  2. Android local.properties 文件读取

    转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6202369.html 本文出自[赵彦军的博客] 在Android Studio项目里面有个local.pro ...

  3. Log4Net应用问题

    问题 一.日志存储方式 1.txt 2.SQLServer数据库 3.log文件 二.项目类型不同 1winFrom 2webFrom 3MVC 4WPF 5控制台 三.切分依据不同 1.空间大小 2 ...

  4. Python学习实践------正向最大匹配中文分词

    正向最大匹配分词: 1.加载词典文件到集合中,取词典文件中最大长度词的length 2.每次先在句子中按最大长度分割,然后判断分割的词是否存在字典中,存在则记录此词,调整起始点. 3.不存在则按最大长 ...

  5. 一步步学习javascript基础篇(9):ajax请求的回退

    需求1: ajax异步请求 url标识请求参数(也就是说复制url在新页面打开也会是ajax后的效果) ajax异步请求没问题,问题一般出在刷新url后请求的数据没了,这就是因为url没有记录参数.如 ...

  6. 几款主流 NoSql 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  7. ABP源码分析二十:ApplicationService

    IApplicationService : 空接口,起标识作用.所有实现了IApplicationService 的类都会被自动注入到容器中.同时所有IApplicationService对象都会被注 ...

  8. Android-环境问题

    大家都知道 Android Studio 是 Goole 的亲儿子,但,亲儿子毕竟也是刚出生2年不到,身上大毛病没有,小毛病大一堆,这篇博文就来总结一下常见的Android Studio 的设置,使用 ...

  9. Mina、Netty、Twisted一起学(八):HTTP服务器

    HTTP协议应该是目前使用最多的应用层协议了,用浏览器打开一个网站就是使用HTTP协议进行数据传输. HTTP协议也是基于TCP协议,所以也有服务器和客户端.HTTP客户端一般是浏览器,当然还有可能是 ...

  10. JavaScript资源大全中文版(Awesome最新版)

    Awesome系列的JavaScript资源整理.awesome-javascript是sorrycc发起维护的 JS 资源列表,内容包括:包管理器.加载器.测试框架.运行器.QA.MVC框架和库.模 ...