yii 2.0 admin和角色控制组件
来源:互联网 发布:车范根数据 编辑:程序博客网 时间:2024/06/07 19:27
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环境下:
国内网络环境复杂,有可能安装时间较长。如果长时间无响应,可终止命令重试。
配置yii2-admin运行环境
注意:如果将yii2-admin配置在common目录下是全局生效,会导致控制台(console)下命令报错。
因为仅将权限控制应用于frontend模块,所以将配置写到frontend目录下。
配置文件:frontend\config\main.php
步骤二:添加权限
权限列表=>新增权限,填好名称提交后,添加对应的路由规则即可。
可用列表中除了路由列表还有已经添加了的权限列表,一个权限可以包含另一个权限。
步骤三:添加角色
角色列表=》新增角色,分别添加管理员、一般用户、未登录用户,将对应的权限分配给角色。
步骤四:分配角色
分配界面列出来的用户名是当前系统中已注册的用户。现注册了admin和user账号用于演示。
点击账号后边的眼睛图案,进行权限分配。
按需要,给予相应的权限。
步骤五:配置网站默认访问权限
上面四步配置完成后,我们访问terms各节点测试结果:
以一般用户身份登录时,可以浏览、添加信息,要更新、删除信息时会提示无权操作。符合预期。
但是如果不登录,在访问terms首页时会跳转到登录页面。
就是说当前系统默认不认可我们配置给未登录用户的权限。
只需要在配置文件中加一行指定默认规则的代码即可:
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首页时会跳转到登录页面。
就是说当前系统默认不认可我们配置给未登录用户的权限。
只需要在配置文件中加一行指定默认规则的代码即可:
'authManager'=> [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['未登录用户'],//添加此行代码,指定默认规则为 '未登录用户'
],
未登录时再访问terms/index节点就能正常显示了,点别的操作时会跳到登录页面,因为未登录时仅有访问首页的权限。
除了在'authManager'中配置默认权限,在'as access'中也可以配置允许所有人访问的节点。
'as access' => [
'allowActions' => [//下面列出的节点,所有人都可以访问,针对未登录用户的配置也可以移至这里
'admin/*',
'site/*',
]
]
如果大家需要,空了再介绍下自定义规则和yii2-admin的菜单的应用。
原文链接:http://wlzyan.blog.163.com/blog/static/46790992015101052627354/
本文旨在介绍yii2-admin的基本用法,并非是最简洁的用法。如有不足之处,还请指正。阅读全文
0 0
- yii 2.0 admin和角色控制组件
- yii 权限控制(yii-admin 和 rabc的安装)
- Yii中如果基于角色权限控制
- YII基于角色的访问控制
- 基于角色的访问控制-rbac-yii
- 标准CharacterCollider角色控制组件
- YII framework下基于角色的访问控制(RBAC),权限设置 yii下,filters()和accessControl()是YII基本的访问控制体系, public function filt
- 05. Yii 2.0 的内部组件和自定义组件
- 05. Yii 2.0 的内部组件和自定义组件
- Yii中使用RBAC完全指南 (用户角色权限控制)
- YII framework下基于角色的访问控制(RBAC)
- YII framework下基于角色的访问控制(RBAC)
- Yii中使用RBAC完全指南 (用户角色权限控制)
- Yii中使用RBAC完全指南 (用户角色权限控制)
- 17. Yii 2.0 log组件
- 17. Yii 2.0 log组件
- 自定义 Yii CGridView 和 CListView 组件
- 【Yii】组件和事件行为管理
- 系统日志
- Java通过Executors提供四种线程池
- JAVA代理模式
- windows32位安装xampp,apache无法启动
- 创建 pod 库的子库
- yii 2.0 admin和角色控制组件
- JAVA调用Rest服务接口
- 代码块
- android下拉刷新框架UltraPtr使用
- linux部署MySQL数据表名大小写问题
- 高性能服务器之IO复用方式比较
- 那些url设计是利于网站seo优化
- pyspark-hdfs数据操作
- java设置一段代码执行的超时时间的简单方法