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 插件使用简要教程的更多相关文章

  1. CGContextRef使用简要教程

    CGContextRef使用简要教程 Graphics Context是图形上下文,也可以理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个 ...

  2. Sublime Text 2安装汉化破解、插件包安装教程

    原文地址: Sublime Text 2安装汉化破解.插件包安装教程_百度经验 http://jingyan.baidu.com/article/ff4116259b057c12e48237b8.ht ...

  3. 阿里巴巴Java开发规约插件p3c详细教程及使用感受

    阿里巴巴Java开发手册 在进入正题介绍这款插件之前,首先来谈一下<阿里巴巴Java开发手册>,2017年年初,首次公开的阿里官方Java代码规范标准手册可以说是引起了全民(IT界)代码规 ...

  4. 40款非常棒的 jQuery 插件和制作教程(系列一)

    jQuery 在现在的 Web 开发项目中扮演着重要角色,jQuery 让网站有更好的可用性和用户体验,让访问者对网站留下非常好的印象.jQuery以其插件众多.独特.轻量以及支持大规模的网站开发闻名 ...

  5. Mac Java Idea 下面Git配置简要教程

    Mac Java Idea 配置简要教程(Sunplay) 1.找到git路径 终端输入:which git 2.在idea的设置git路径 3.测试Git的效果 测试Git成功的效果

  6. VS增加插件 Supercharger破解教程

    VS增加插件 Supercharger破解教程 Supercharger效果预览及下载路径: http://supercharger.tools/index.html 下载地址:https://vis ...

  7. Unity插件-NGUI使用教程

    Unity插件-NGUI使用教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 NGUI 一款强大的次 ...

  8. 《图说VR入门》——Unity插件DK2使用教程

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/53339254 作者:car ...

  9. 【XPath Helper:chrome爬虫网页解析工具 Chrome插件】XPath Helper:chrome爬虫网页解析工具 Chrome插件下载_教程_安装 - 开发者插件 - Chrome插件网

    [XPath Helper:chrome爬虫网页解析工具 Chrome插件]XPath Helper:chrome爬虫网页解析工具 Chrome插件下载_教程_安装 - 开发者插件 - Chrome插 ...

随机推荐

  1. 基于MapReduce的关系代数运算(1)

    1.选择运算 Map函数:对R中的每个元组t,检测它是否满足条件C,如果满足,则产生一个键值对(t,t) Reduce函数:直接将每个键值对传递到输出即可 2.投影运算 Map函数:对R中的每个元组t ...

  2. pku3659 Cell Phone Network

    http://poj.org/problem?id=3659 树状DP,树的最小点覆盖 #include <stdio.h> #include <vector> #define ...

  3. 转】腾讯云CentOS 6.6安装 Nginx

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/5290155.html 感谢! 一.下载Nginx 从Nginx的官网(http://nginx.org/en/d ...

  4. What's Exposure?

    [What's Exposure?] ISO:即相机的感光度.ISO数值的大小是DC对光线反应的敏感程度测量值,通常以ISO数值表示,数值越大表示对光线的敏感性越强,数值越小表示越弱,是控制曝光量的一 ...

  5. WIFI接入Internet配置过程

    转载请注明出处:http://club.gizwits.com/thread-256-1-1.html AirLink模式GoKit2代配置路由SSID和密码方法如下:1.GoKit2上电2.长按Ke ...

  6. [iOS微博项目 - 2.5] - 封装授权和用户信息读写业务

    github: https://github.com/hellovoidworld/HVWWeibo   A.封装授权业务 1.把app的授权信息移动到HVWWeibo-Prefix.pch中作为公共 ...

  7. HDU1007最近点对(分治)

    http://acm.hdu.edu.cn/showproblem.php?pid=1007 直接见代码吧.不过这个是N*logN*logN的 尽管如此,我怎么感觉我的比他们的还快??? #inclu ...

  8. css div 垂直居中

    参考:http://css-tricks.com/centering-in-the-unknown/ <style> .valign { font-size: 0px;/* clear s ...

  9. Cipher Message

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=34121#problem/C // File Name: c.cpp // Author: ...

  10. Windows 错误代码

    Error Messages for Windows http://www.gregorybraun.com/MSWINERR.ZIP Server 4.0 Error Messages   Code ...