安装指南: 带有 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

相关文章
相关标签/搜索