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)

建立菜單

例如

//此權限必須是上圖全部權限 

相關文章
相關標籤/搜索