zoukankan      html  css  js  c++  java
  • YII框架实现 RBAC

    (1)、在  commonconfigmain.php添加 

    'components' => [
        ’authManager’ => [        
       ’class’ => 'yii bacDbManager',
    ],
    ],
    (2)、
    yii migrate --migrationPath=@yii/rbac/migrations/
    (3)

    开始安装yii2-admin:
    composer require mdmsoft/yii2-admin "~2.0"

    此时会生成4张表  (提前选择数据库,最好是干净的数据库)

    其中:auth_item:用于存储角色、权限和路由;  auth_item_child:角色-权限的关联表;  auth_assignment:用户-角色的关联表  auth_ruls 规则表

    (4)

    安装好了之后,我们打开 backendconfigmain.php,配置如下

    return [
       //......
       'modules' => [
    'admin' => [        
       'class' => 'mdmadminModule',   
    ],
    //......
       ],
       'aliases' => [    
    '@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
       ],
       'components' => [
    //......
    'authManager' => [        
       'class' => 'yii
    bacDbManager',
       'defaultRoles' => ['guest'],    
    ],
    //......
       ],
       'as access' => [
    'class' => 'mdmadmincomponentsAccessControl',
    'allowActions' => [
       //这里是允许访问的action,不受权限控制
       //controller/action
           '*'
    ]
       ],
       //......
    ];
    
     

    (5)

    可以通过下列url验证安装是否成功
    /index.php?r=admin
    /index.php?r=admin/route
    /index.php?r=admin/permission
    /index.php?r=admin/role
    /index.php?r=admin/assignment

    (5)

    composer require dmstr/yii2-adminlte-asset "2.*"

    拷贝 vendordmstryii2-adminlte-assetexample-viewsyiisoftyii2-app 目录下面的文件到项目 backendviews, 可直接进行覆盖替换

    (6)

    //执行命令

    yii migrate/to m140602_111327_create_menu_table.php  --migrationPath=@mdm/admin/migrations
    通过 /index.php?r=admin/menu 访问菜单创建

    打开布局文件left.php,文件内的Html代码替换为下面的代码,

    <?php
    use mdmadmincomponentsMenuHelper;
    use dmstrwidgetsMenu;
    ?>
    
    
    <aside class="main-sidebar">
       <section class="sidebar">
    <?=
       Menu::widget([
    'options' => ['class' => 'sidebar-menu'],
    'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id)
       ]);
    ?>
       </section>
    </aside>


    (7)创建菜单

    通过 /index.php?r=admin/menu 访问菜单创建

    ① //路由设置

     

    /admin/route/index     #访问将左侧所有路由添加到右侧,即写入路由数据,这里的路由是根据php反射机制自动显示,也可手动增加路由

     

    ② //权限设置

     

    /admin/permission/index     #添加一个权限,分配给一个路由,例如:“ 全局权限 ”,右侧加入 “ /* ”;

     

     

    ③ //角色设置

     

    /admin/role/index     #添加一个角色,分配给该角色一个权限,例如:“ 超级管理员 ”,右侧加入上一步设置的 “ 全局权限 ”;

    //角色分配

     (4)

    /admin     #分配给用户角色,这里会显示user表中所有用户,例如:“ admin ”,右侧加入上一步设置的角色 “ 超级管理员 ”

    (登录密码为123456)

    (5)

    创建菜单

    例如

    //此权限必须是上图所有权限 

  • 相关阅读:
    我的2007, 兼谈些对技术的看法
    回帖整理: 关于"学习Java社区"更清晰的思路
    回帖整理: 创业心态
    我的世界观 by 爱因斯坦
    回帖整理: 论团队中的设计工作
    请大家帮我一个忙
    回帖整理: Java社区有什么可学的?
    SSL原理及应用(1)SSL协议体系结构
    文件和目录的访问控制(4) 审核规则
    强名称(2)引用强名称签名的程序集
  • 原文地址:https://www.cnblogs.com/chaihtml/p/10255361.html
Copyright © 2011-2022 走看看