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)

创建菜单

例如

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

原文地址:https://www.cnblogs.com/chaihtml/p/10255361.html