yii2-basic后台管理功能开发之五:用户权限的控制
2016-09-29 16:23
357 查看
需求:后台有两种权限+管理员+用户
区别:可以访问的页面不同
解决方法:用户表添加role字段,使用到的是yii2 存取控制过滤器(ACF)方法.
>1在web.php中配置授权的类,有两种,我用到的是PhpManager
>2在用户表中配置角色权限对应的role值,也可以不配置
>3重写授权规则类AccessRule
>4在控制器中配置相应的权限.
注意其中的ruleConfig是我们刚才改写的类,如果需要控指定的action,则在rules对[action]进行配置.
区别:可以访问的页面不同
解决方法:用户表添加role字段,使用到的是yii2 存取控制过滤器(ACF)方法.
>1在web.php中配置授权的类,有两种,我用到的是PhpManager
'components' => [ 'authManager' => [ 'class' => 'yii\rbac\PhpManager', ], ],
>2在用户表中配置角色权限对应的role值,也可以不配置
const ROLE_ADMIN = 0; const ROLE_USER = 1;
>3重写授权规则类AccessRule
class AccessRule extends \yii\filters\AccessRule { /** * @inheritdoc */ protected function matchRole($user) { if (count($this->roles) === 0) { return true; } foreach ($this->roles as $role) { if ($role === '?') { if ($user->getIsGuest()) { return true; } }elseif (!$user->getIsGuest() && $role == $user->identity->role) { return true; } } return false; } }
>4在控制器中配置相应的权限.
注意其中的ruleConfig是我们刚才改写的类,如果需要控指定的action,则在rules对[action]进行配置.
public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'ruleConfig' => [ 'class' => AccessRule::className(), ], 'rules' => [ [ 'allow' => true, 'roles' => [ User::ROLE_ADMIN, ], ], ], ], ]; }
相关文章推荐
- yii2-basic后台管理功能开发之二:创建CRUD增删改查
- yii2-basic后台管理功能开发之四:图片上传FileInput
- yii2-basic后台管理功能开发之一:引入模板
- yii2-basic后台管理功能开发之三:自定义GridView列显示
- MVC5 网站开发之七 用户功能 1、角色的后台管理
- 基于Struts+Hibernate开发的后台管理,功能包含完善的权限管理和信息发布功能
- Django实战1-权限管理功能实现-01:搭建开发环境
- 用户管理 之 Linux 系统中的超级权限的控制
- 走火入魔通用权限管理不仅是权限设计更是总体设计规划、快速开发集成平台(集中控制体系)
- 用户及权限管理功能常规测试
- Linux用户管理五 Linux 系统中的超级权限的控制
- 域环境中普通用户安装软件权限的管理和控制
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥
- MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
- Ecshop实现后台二次开发后功能模块仍然可以分配权限
- MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
- 程序开发中权限管理简述,用户-角色-权限关系
- Java开发自己的IDE(已经有界面、编译、运行、后台工程管理功能)
- 走火入魔通用权限管理不仅是权限设计更是总体设计规划、快速开发集成平台(集中控制体系)