文档章节

安装指南: 带有 RBAC 的 Yii2 高级模板

首席烤地瓜
 首席烤地瓜
发布于 2016/11/10 09:34
字数 1087
阅读 169
收藏 3

在这里我介绍一种快速简单的方法来在 Yii2 高级模版中安装 RBAC(Role Based Access Control) 系统

安装: Yii2 高级模板

在这里使用 composer 安装 yii2 高级模板。假如你的机器中没有 composer下载 它的最新版本。安装完成请检查能否在 CMD 中执行 composer 命令:

C:\>composer

如果上述命令给出了正确的输出,就可以进行下面的操作了。

打开一个 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 中进入新安装的应用根目录。

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

接下来需要使用命令 php init 来初始化。初始化会生成应用的入口脚本和配置文件,命令如下:

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

你可以在给出的选项中选择运行环境的类型:

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。步骤如下:

安装: 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

本文转载自:http://www.yiizh.com/post/1/installation-guide-yii-2-advanced-template-with-rbac-system

首席烤地瓜
粉丝 6
博文 13
码字总数 198
作品 0
朝阳
程序员
私信 提问
yii2搭建完美后台并实现rbac权限控制

作者:白狼 出处:http://www.manks.top/article/yii2framerbac_template 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律...

白狼栈
2016/03/30
885
2
七觞酒/yiicms

YiiCms 企业站管理系统,基于 yii2 basic 开发 页面前台样式基于bootStrap 3.0 开发,管理后台样式是 adminLTE,权限部分使用 yii2-admin,大部分都是拿来主义,不想重复造轮... 第三方包依赖...

七觞酒
2016/12/27
0
0
Yii2 ExtJs5 RBAC

Yii2 ExtJs5 RBAC 支持 ACL+RBAC。 安装 安装这个扩展的首选方式是通过composer。 执行 composer require --prefer-dist myweishanli/yii2-extjs-rbac 或添加 "myweishanli/yii2-extjs-rbac......

myweishanli
2015/12/07
1K
0
Yii basic 去掉index.php 后缀

安装 Yii 社区推荐:掘金是一个面向程序员的技术社区,从后端到架构,从 PHP 最佳实践到一线大厂经验分享,无论入门还是进阶,来掘金你不会错过后端开发的任何一个技术干货。 你可以通过两种...

全栈coder
2018/11/22
0
0
小紫羽/yii2-fast-api

yii2-fast-api yii2-fast-api是一个Yii2框架的扩展,用于配置完善Yii2,以实现api的快速开发。 此扩展默认的场景是APP的后端接口开发,因此偏向于实用主义,并未完全采用restfull的标准,方便...

小紫羽
2017/01/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部