安裝指南: 帶有 RBAC 的 Yii2 高級模板

在這裏我介紹一種快速簡單的方法來在 Yii2 高級模版中安裝 RBAC(Role Based Access Control) 系統php

安裝: Yii2 高級模板git

在這裏使用 composer 安裝 yii2 高級模板。假如你的機器中沒有 composer下載 它的最新版本。安裝完成請檢查可否在 CMD 中執行 composer 命令:github

C:\>composer

若是上述命令給出了正確的輸出,就能夠進行下面的操做了。web

打開一個 CMD 窗口並進入到服務的根目錄。我使用的是 wamp 服務,以下:數據庫

C:\>cd wamp\www
C:\wamp\www>

而後使用命令 composer create-project --prefer-dist yiisoft/yii2-app-advanced yii2-app 來建立一個名稱爲 yii2-app 的新應用。數組

C:\wamp\www>composer create-project --prefer-dist yiisoft/yii2-app-advanced yii2-app

此模板也能夠從 github 下載。安裝完成後在 CMD 中進入新安裝的應用根目錄。yii2

C:\wamp\www>cd yii2-app
C:\wamp\www\yii2-app>

接下來須要使用命令 php init 來初始化。初始化會生成應用的入口腳本和配置文件,命令以下:app

C:\wamp\www\yii2-app>php init

你能夠在給出的選項中選擇運行環境的類型:composer

Which environment do you want the application to be initialized in?

  [0] Development
  [1] Production

Your choice [0-1, or "q" to quit]

如今安裝 yii2 高級模板已經完成,但尚未對應的數據庫。咱們須要建立一個數據庫。首先咱們先安裝一個 RBAC 模塊。這裏我使用了 yii2-admin。步驟以下:yii

安裝: RBAC 系統

在 CMD 窗口中執行命令 composer require mdmsoft/yii2-admin "~2.0" 來安裝 yii2-admin

C:\wamp\www\yii2-app>composer require mdmsoft/yii2-admin "~2.0"

你能夠在 github 下載 yii2-admin。安裝完成後,yii2-admin 被安裝在 yii2-app/vendor/mdmsoft 目錄。

下面須要在配置文件 yii2-app/common/config/main.php 中添加一些參數來配置 yii2-adminauthManager:

'modules' => [
    'admin' => [
        'class' => 'mdm\admin\Module',
        ...
    ]
    ...
],
...
'components' => [
    ...
    'authManager' => [
        'class' => 'yii\rbac\PhpManager', // or use 'yii\rbac\DbManager'
    ]
],

建立一個 MySQL 數據庫並在配置文件 yii2-app/common/config/main-local.php 中添加數據庫信息。當前數據庫中沒有用戶表,須要建立一個用戶表。能夠使用 yii2 提供的數據庫遷移工具。執行命令 yii migrate --migrationPath=@mdm/admin/migrations 來建立一個用戶表。

C:\wamp\www\yii2-app>yii migrate --migrationPath=@mdm/admin/migrations

上面的命令會建立 usermenu 兩張表。

下面在配置文件 yii2-app/common/config/main.php 中修改用戶組件的屬性:

'components' => [
    ...
    'user' => [
        'identityClass' => 'mdm\admin\models\User',
        'loginUrl' => ['admin/user/login'],
    ]
]

經過添加用戶來填充 user 表。使用此連接來註冊用戶

http://localhost/yii2-app/backend/web/index.php?r=admin/user/signup

你能夠使用類 'yii\rbac\DbManager' 來對數據庫中的用戶進行受權。首先須要執行一個數據庫遷移命令 yii migrate --migrationPath=@yii/rbac/migrations。在配置文件 yii2-app/common/config/main.php 中添加 'class' => 'mdm\admin\models\User' 以下:

'components' => [
    ...
    'authManager' => [
        'class' => 'yii\rbac\DbManager', // or use 'yii\rbac\PhpManager'
    ],
    'user' => [
        'class' => 'mdm\admin\models\User',
        'identityClass' => 'mdm\admin\models\User',
        'loginUrl' => ['admin/user/login'],
    ]
]

並在遷移完成後刪除配置文件中的 'class' => 'mdm\admin\models\User'。遷移命令以下:

C:\wamp\www\yii2-app>yii migrate --migrationPath=@yii/rbac/migrations

不要忘了在配置文件 yii2-app/common/config/main.php 刪除 'class' => 'mdm\admin\models\User'

你能夠使用下面的 RBAC 連接建立和管理權限或角色:

http://localhost/yii2-app/backend/web/index.php?r=admin

http://localhost/yii2-app/backend/web/index.php?r=admin/route

http://localhost/yii2-app/backend/web/index.php?r=admin/permission

http://localhost/yii2-app/backend/web/index.php?r=admin/menu

http://localhost/yii2-app/backend/web/index.php?r=admin/role

http://localhost/yii2-app/backend/web/index.php?r=admin/assignment

http://localhost/yii2-app/backend/web/index.php?r=admin/user

你能夠建立和管理 routes/permissions/roles 並將它們分配給已有用戶。爲了驗證用戶是否有權限進行控制器中的指定的動做,須要在配置文件 yii2-app/common/config/main.php 中添加 access control

return [
    'modules' => [
        ....
    ],
    ....
    'as access' => [
        'class' => 'mdm\admin\components\AccessControl',
        'allowActions' => [
            'site/*',
            'admin/*',
        ]
    ]
]

你能夠在 allowActions 數組中添加公開的動做。其餘的侗族將會使用 AccessControl 類驗證。

關於 yii2-advancedyii2-admin 的更多信息,請點擊:

https://github.com/yiisoft/yii2-app-advanced

https://github.com/mdmsoft/yii2-admin

但願此文對您有所幫助。

快樂的小碼農 :)

英文原文: Installation guide: Yii-2 advanced template with RBAC system

相關文章
相關標籤/搜索