yii2-basic后台管理功能开发之五:用户权限的控制

需求:后台有两种权限+管理员+用户

区别:可以访问的页面不同

解决方法:用户表添加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,
                        ],
                    ],
                ],
            ],
        ];
    }
时间: 2024-08-05 08:13:44

yii2-basic后台管理功能开发之五:用户权限的控制的相关文章

yii2-basic后台管理功能开发之一:引入模板

前景:哎没想到用php的yii2框架写了官网……自己选择的框架,跪着也要码完,当年用yii2-basic搭建了官网,原是想偷懒的,没想到还要写后台.... 需求:实现一个可编辑页面图片及新闻内容的后台管理系统 分析:粗略来看我们需要实现一下功能点 管理员登陆(官方前台木有登陆--仅仅是公司介绍的pages) 菜单栏 图片上传 富文本编辑器 解决方案: 寻找靠谱后台管理模板(暂定AdminLTE2) 寻找靠谱富文本编辑器(暂定ueditor) 关于作者:菜鸟,对php,yii2处于探索阶段.所以如

yii2-basic后台管理功能开发之四:图片上传FileInput

我采用的是 kartik-v/yii2-widget-fileinput的文件上传插件,大家可以去github查看详细的安装方法和使用说明. 需求:上传图片+可以预览缩略图 在这里说说我碰到的问题:限制图片长宽尺寸. 1,首先想到的是,在models里设置图片的长宽的限制 %>_<%,不可以,models获取到的总是预览的缩略图的尺寸....... 2,其次利用插件里的长宽的限制 %>_<%,虽然尺寸不合适会有提示,但是依然可以提交提交........... 3,在控制器里对图片的

DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能

DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能 一.引言 在当前的电子商务平台中,用户下完订单之后,然后店家会在后台看到客户下的订单,然后店家可以对客户的订单进行发货操作.此时客户会在自己的订单状态看到店家已经发货.从上面的业务逻辑可以看出,当用户下完订单之后,店家或管理员可以对客户订单进行跟踪和操作.上一专题我们已经实现创建订单的功能,则接下来自然就是后台管理功能的实现了.所以在这一专题中将详细介绍如何在网上书店案例中实现后台管理功能. 二.后台管理中的权限管理的实现 后台管理中,

[.NET领域驱动设计实战系列]专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能

一.引言 在当前的电子商务平台中,用户下完订单之后,然后店家会在后台看到客户下的订单,然后店家可以对客户的订单进行发货操作.此时客户会在自己的订单状态看到店家已经发货.从上面的业务逻辑可以看出,当用户下完订单之后,店家或管理员可以对客户订单进行跟踪和操作.上一专题我们已经实现创建订单的功能,则接下来自然就是后台管理功能的实现了.所以在这一专题中将详细介绍如何在网上书店案例中实现后台管理功能. 二.后台管理中的权限管理的实现 后台管理中,首先需要实现的自然就是权限管理了,因为要进行商品管理等操作的

Yii2系列教程五:简单的用户权限管理

上一篇文章讲了用户的注册,验证和登录,这一篇文章按照约定来说说Yii2之中的用户和权限控制. 你可以直接到Github下载源码,以便可以跟上进度,你也可以重头开始,一步一步按照这个教程来做. 鉴于本教材基于Yii2 Basic,所以对RBAC的详细讲解我后面再单独出文章来说说吧,这里主要是简单地说一说权限控制 上一篇文章所实现的功能还比较简单,可以发一条状态,但是不知道你注意到没有,如果是没有注册的用户也可以使用我们的应用(类似小微博)来发状态,这是不符合情理的.正确的做法是在用户没有注册,登录

BBS(仿博客园系统)项目05(后台管理功能实现:文章添加、富文本编辑器使用、xss攻击、BeautifulSoup4模块、富文本编辑器上传图片、修改头像)

摘要 布局框架搭建 随笔添加 后台管理富文本编辑器KindEditor xss攻击 文章简介的截取,BeautifulSoup4模块 富文本编辑器上传图片 头像修改 一.后台管理框架布局搭建 后台管理布局框架分析:导航条.左侧功能区.右侧主要功能显示和实现区 实现: 导航条:使用bootstrap模板:JavaScript>>导航条 左侧:使用bootstrap模板:组件>>列表组 右侧:使用bootstrap模板:JavaScript>>标签页 新建后台管理路由(注意

微信公众平台新增评论管理功能 可显示用户评论

一大早打开微信公众平台,发现插件那边新增了“评论管理”功能组件,查看了一下,可以显示用户评论.微信公众平台要整合微社区的节奏? 通过腾讯微信相关公告消息称,开通微信认证的公众号可以申请添加该功能模块,发布之前选择开启评论才能评论.可以选择精选评论,公众帐号文章只显示被运营者放入精选的评论.

Django Admin后台管理功能使用(学习版)

一.前言: 在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: from django.contrib import admin urlpatterns = [    url(r'^admin/',admin.site.urls), ] 上边看到导入的admin模块 二.主要功能: 功能1:提供数据库管理功能 基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查 功能2:二次开发 基于该模块的数据管理功能,可以二次定制一些实用的功能. 三

Python菜鸟之路:Django Admin后台管理功能使用

前言 用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), ] 上边看到导入的admin模块,就是本节所要说的主要内容 主要功能 功能1:提供数据库管理功能 基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查 功能2:二次开发 基于该模块