博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
yii2-basic后台管理功能开发之五:用户权限的控制
阅读量:7142 次
发布时间:2019-06-28

本文共 1452 字,大约阅读时间需要 4 分钟。

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

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

解决方法:用户表添加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,                        ],                    ],                ],            ],        ];    }

 

转载于:https://www.cnblogs.com/perallina/p/5920335.html

你可能感兴趣的文章
股票实时API
查看>>
Application Fundamentals应用基础
查看>>
AJAX实例--根据邮政编号动态获取省,市,县三级地区+仿百度搜索下拉提示
查看>>
tcpdump与wireshark在测试中过程中的使用
查看>>
由一个简单的String c=a+b的Java问题引发一点想法
查看>>
孤儿进程与僵尸进程【比较】
查看>>
4、您为这个网络适配器输入的IP地址 x.x.x.x已经分配给另一个适配器
查看>>
windows将环回口ip设置子网掩码全为255(LVS中Windows作为真实主机(RealServer)时的设置方法)...
查看>>
查询EBS 11i 用户名密码
查看>>
shell脚本创建文件
查看>>
链路冗余:HSRP/SLB/VRRP/GLBP
查看>>
阿里云esc 使用docker部署redis集群
查看>>
放大缩小
查看>>
易宝典文章——玩转Office 365中的Exchange Online服务 之二十五 配置出站垃圾邮件策略通知...
查看>>
cacti安装与配置
查看>>
何时会发生db file sequential read等待事件?
查看>>
Error Code: 1175. You are using safe update mode...
查看>>
stun 协议客户端实现
查看>>
并发编程之CyclicBarrier
查看>>
网站被K后恢复的方法和技巧
查看>>