yii2-admin 插件使用简要教程
yii2的访问权限默认是由自带的rbac组件在管理,需要自己编写相应的规则去实现权限管理,无图形界面。
yii2-admin是将rbac的管理可视化,只需要点几下鼠标就能设置好简单的规则。
本教程中软件版本及链接:yii2(v2.06,使用高级模板),yii2-admin(2.0)
yii2:https://github.com/yiisoft/yii2
yii2-admin:https://github.com/mdmsoft/yii2-admin
本文未涉及自定义规则和yii2-admin菜单。
假定你已经安装好了yii2,且数据库中创建了user表。具体安装步骤可见此文档。
使用composer安装yii2-admin
非windows环境下:
php composer.phar require mdmsoft/yii2-admin "~2.0"
php composer.phar update
Windows下:
composer require mdmsoft/yii2-admin "~2.0"
composer update
国内网络环境复杂,有可能安装时间较长。如果长时间无响应,可终止命令重试。
配置yii2-admin运行环境
注意:如果将yii2-admin配置在common目录下是全局生效,会导致控制台(console)下命令报错。
因为仅将权限控制应用于frontend模块,所以将配置写到frontend目录下。
配置文件:frontend\config\main.php
return [
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
'layout' => 'left-menu',//yii2-admin的导航菜单
]
...
],
...
'components' => [
...
'authManager' => [
'class' => 'yii\rbac\DbManager', // 使用数据库管理配置文件
]
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
'site/*',//允许访问的节点,可自行添加
'admin/*',//允许所有人访问admin节点及其子节点
]
],
];
创建相应的数据库表
在控制台中输入以下命令:
yii migrate --migrationPath=@mdm/admin/migrations
yii migrate --migrationPath=@yii/rbac/migrations
安装到此完成。
访问http#//localhost/path/to/index.php?r=admin可以看到yii2-admin的管理界面。效果如下图。
注:网址需要修改成你网站首页的实际地址。

配置访问权限示例
以节点terms(一个自定义的节点)为例,节点terms下共有index,view,create,update,delete五个子节点。
配置目标:
未登录用户仅能访问index节点
一般登录用户能访问index,view,create三个节点
管理员能访问所有节点
步骤一:添加可分配列表
打开yii2-admin路由列表页,点击可用输入框后面的刷新图标将列出当前网站所有可用的路由列表,选中terms各节点路由表添加至右侧可分配路由列表中。

步骤二:添加权限权限列表=>新增权限,填好名称提交后,添加对应的路由规则即可。

可用列表中除了路由列表还有已经添加了的权限列表,一个权限可以包含另一个权限。
步骤三:添加角色角色列表=》新增角色,分别添加管理员、一般用户、未登录用户,将对应的权限分配给角色。

步骤四:分配角色
分配界面列出来的用户名是当前系统中已注册的用户。现注册了admin和user账号用于演示。

点击账号后边的眼睛图案,进行权限分配。

按需要,给予相应的权限。
步骤五:配置网站默认访问权限
上面四步配置完成后,我们访问terms各节点测试结果:
以一般用户身份登录时,可以浏览、添加信息,要更新、删除信息时会提示无权操作。符合预期。

以管理员身份登录时,可进行所有操作。符合预期。
但是如果不登录,在访问terms首页时会跳转到登录页面。预期结果是未登录时能访问terms首页。
就是说当前系统默认不认可我们配置给未登录用户的权限。
只需要在配置文件中加一行指定默认规则的代码即可:
'authManager'=> [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['未登录用户'],//添加此行代码,指定默认规则为 '未登录用户'
],
未登录时再访问terms/index节点就能正常显示了,点别的操作时会跳到登录页面,因为未登录时仅有访问首页的权限。
除了在authManager中配置默认权限,在as access中也可以配置允许所有人访问的节点。
'as access' => [
'allowActions' => [//下面列出的节点,所有人都可以访问,针对未登录用户的配置也可以移至这里
'admin/*',
'site/*',
]
]
如果大家需要,空了再介绍下自定义规则和yii2-admin的菜单的应用。
原文链接:http://www.yiichina.com/tutorial/571
yii2-admin 插件使用简要教程的更多相关文章
- CGContextRef使用简要教程
CGContextRef使用简要教程 Graphics Context是图形上下文,也可以理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个 ...
- Sublime Text 2安装汉化破解、插件包安装教程
原文地址: Sublime Text 2安装汉化破解.插件包安装教程_百度经验 http://jingyan.baidu.com/article/ff4116259b057c12e48237b8.ht ...
- 阿里巴巴Java开发规约插件p3c详细教程及使用感受
阿里巴巴Java开发手册 在进入正题介绍这款插件之前,首先来谈一下<阿里巴巴Java开发手册>,2017年年初,首次公开的阿里官方Java代码规范标准手册可以说是引起了全民(IT界)代码规 ...
- 40款非常棒的 jQuery 插件和制作教程(系列一)
jQuery 在现在的 Web 开发项目中扮演着重要角色,jQuery 让网站有更好的可用性和用户体验,让访问者对网站留下非常好的印象.jQuery以其插件众多.独特.轻量以及支持大规模的网站开发闻名 ...
- Mac Java Idea 下面Git配置简要教程
Mac Java Idea 配置简要教程(Sunplay) 1.找到git路径 终端输入:which git 2.在idea的设置git路径 3.测试Git的效果 测试Git成功的效果
- VS增加插件 Supercharger破解教程
VS增加插件 Supercharger破解教程 Supercharger效果预览及下载路径: http://supercharger.tools/index.html 下载地址:https://vis ...
- Unity插件-NGUI使用教程
Unity插件-NGUI使用教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 NGUI 一款强大的次 ...
- 《图说VR入门》——Unity插件DK2使用教程
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/53339254 作者:car ...
- 【XPath Helper:chrome爬虫网页解析工具 Chrome插件】XPath Helper:chrome爬虫网页解析工具 Chrome插件下载_教程_安装 - 开发者插件 - Chrome插件网
[XPath Helper:chrome爬虫网页解析工具 Chrome插件]XPath Helper:chrome爬虫网页解析工具 Chrome插件下载_教程_安装 - 开发者插件 - Chrome插 ...
随机推荐
- Failed to read artifact descriptor--maven问题总结(能力工场)
在开发的过程中,作为新手,经常遇到Maven下载依赖的时候,"Failed to read artifact descriptor for xxx:jar"的错误 对于这种非业务相 ...
- HDU 2035 人见人爱A^B 分类: ACM 2015-06-22 23:54 9人阅读 评论(0) 收藏
人见人爱A^B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- Codeforces Round #368 (Div. 2) C. Pythagorean Triples(数学)
Pythagorean Triples 题目链接: http://codeforces.com/contest/707/problem/C Description Katya studies in a ...
- C# 获取某月的第一天和最后一天
/// <summary> /// 取得某月的第一天 /// </summary> /// <param name=" ...
- Event Functions
[Event Functions] A key concept in games programming is that of making changes to position, state an ...
- 网易及新浪IP查询接口
通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本<通过纯真IP数据库获取IP地 ...
- POJ 3304 Segments (直线和线段相交判断)
Segments Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7739 Accepted: 2316 Descript ...
- A Dream
A Dream 2013年10月20日,成都,天气阴,铜牌16.离2012年10月14日长春现场赛刚好隔了一年,刚看了下去年写的总结http://blog.csdn.net/cc_again/arti ...
- ASP.NET MVC- KindEditor的使用
我用过几个EDITOR,还是比较喜欢KINDEDITOR.这个工作可能最近要用到了,周末在家花时间了解了一下.做了一下备注在这里,以备日后方便查阅. 1.首先去KINDEDITOR的官网下载最新的版本 ...
- Ehcache(04)——设置缓存的大小
http://haohaoxuexi.iteye.com/blog/2116749 设置缓存的大小 目录 1 CacheManager级别 2 Cache级别 3 大小衡量 4 ...