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


    这里有几个概念

    权限:

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

    角色

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

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

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

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

    初级会员组:浏览

    在Yii2.0中

    • yii bac: Item  为角色或者权限的基类,其中用字段type来标识。1代表角色,2代表权限
    • yii bac: Role  为代表角色的类
    • yii bac: Permission  为代表权限的类
    • yii bac: Assignment  为代表用户角色或者权限的类
    • yii bac: 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、如何将某用户加入某角色(用户组)中

    浏览器访问

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

      

  • 相关阅读:
    document基本操作 动态脚本-动态样式-创建表格
    js原型模式和继承
    NuGet本地包自定义路径
    技术文档链接收藏
    数据结构排序
    Insertion Sort
    选择排序之javascript
    冒泡排序之javascript
    C++双向链表
    单向链表
  • 原文地址:https://www.cnblogs.com/wangjiafang/p/4583949.html
Copyright © 2020-2023  润新知