yii2的权限管理系统RBAC简单介绍

这里有几个概念

权限:

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

角色

比如: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:8090/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、如何将某用户加入某角色(用户组)中

 

 

浏览器访问

1

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

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

 

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做简单介绍。具体我们可以将这些功能丰富之后,写入后台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值