YII框架实现 RBAC

(1)、在  common\config\main.php添加 php

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

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

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

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

(4)composer

安装好了以后,咱们打开 backend\config\main.php,配置以下yii

return [
   //......
   'modules' => [
'admin' => [        
   'class' => 'mdm\admin\Module',   
],
//......
   ],
   'aliases' => [    
'@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
   ],
   'components' => [
//......
'authManager' => [        
   'class' => 'yii\rbac\DbManager',
   'defaultRoles' => ['guest'],    
],
//......
   ],
   'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
   //这里是容许访问的action,不授权限控制
   //controller/action
       '*'
]
   ],
   //......
];

 

 

(5)ide

能够经过下列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)ui

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

 

拷贝 vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app 目录下面的文件到项目 backend\views, 可直接进行覆盖替换

(6)

//执行命令

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

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

<?php
use mdm\admin\components\MenuHelper;
use dmstr\widgets\Menu;
?>


<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)

建立菜单

例如

//此权限必须是上图全部权限 

相关文章
相关标签/搜索