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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,
                        ],
                    ],
                ],
            ],
        ];
    }

 

以上是关于yii2-basic后台管理功能开发之五:用户权限的控制的主要内容,如果未能解决你的问题,请参考以下文章

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

yii2-basic后台管理功能开发之二:创建CRUD增删改查

MVC5 网站开发之七 用户功能 1角色的后台管理

软件项目开发环境构建之五:ConfluenceJiraBitbucket统一账户管理

后台管理系统的权限设计该怎么做

Vue项目实战:电商后台管理系统(Vue+VueRouter+Axios+Element)