yii2项目实战-yii2-admin组件配置及使用
更新于 2017年07月21日 by 白狼 被浏览了 5766 次
1 1

前面我们花了5个课时,讲解了从rbac数据表的分析到权限管理功能的实现!在以后的管理平台开发中,不管是不是用yii框架,我觉得权限管理模块的开发工作对你来说已经不是什么难事了!有些人要较劲了,yii实战项目开发,权限管理的功能要我们手动去实现,可笑至极呀!你错了!如果仅仅会使用框架,这又跟生搬硬套有什么区别!对于刚开始上路的新人,如果我们上来就套组件,一课时就完成了权限管理的配置,开发速度是提升了不少。但是,提升我们自身de技术能力,毫无卵用......好好的真金白银我岂不是没让你花在刀刃上?

早在几个月前,我们曾经就以迅雷不及掩耳之势整合了yii2-admin组件,但是到头来,却发现很多同学云里雾里,完全不懂得其界面化如何操作,随之我又专门提供了一篇基本的操作流程的讲解!但是还是有同学转不过圈来,究其原因,就是我们前面5个课时的精髓所在!

今天,我们就来看看这个第三方组件是如何使用的。

安装

composer require mdmsoft/yii2-admin "~2.0"

配置

安装好了之后,我们打开 backend\config\main.php,配置如下

return [
    //......
    'modules' => [
        'admin' => [        
            'class' => 'mdm\admin\Module',   
        ],
        //......
    ],
    'aliases' => [    
        '@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
    ],
    'components' => [
        //......
        'authManager' => [        
            'class' => 'yii\rbac\DbManager',
            'defaultRoles' => ['guest'],    
        ],
        //......
    ],
    'as access' => [
        'class' => 'mdm\admin\components\AccessControl',
        'allowActions' => [
            //这里是允许访问的action,不受权限控制
            //controller/action
        ]
    ],
    //......
];

细心的同学发现了,这里的配置其实跟我们在通过行为,解决rbac的分配问题一文中讲解的差不多嘛!

配置好了之后,刷新下首页我们发现直接抛出了Forbidden (#403)了,这很显然是告诉我们没权限访问了!即yii2-admin组件我们已经配置ok了。

奇怪,为什么就直接抛出了403,提示我们没权限访问了呢?

我们回过头来看下配置,就很容易看出来,他其实是通过行为类 mdm\admin\components\AccessControl 进行的控制,这跟我们先前讲到的backend\components\AccessControl 何其相像!

如果你看了 mdm\admin\components\AccessControl 的源码你会发现,咦?这源码好像在哪里似曾相识!没错,其实我们在通过行为,解决rbac的分配问题一文中已经带大家实现过了一部分源码,现在想想,so easy。

好了,我们继续本节内容。

现在我们“遭受”权限控制,步步403,步步Forbidden,没法进行了!

回到100个控制器的问题,假如说我们通过配置行为,一股脑的控制了所有的控制器,万一有那么个别的控制器我不想受到rbac的控制,怎么办?

我们是不是得想办法,通过配置组件的属性,然后再beforeAction内部判断呢?没错,就是这么处理。

我们打开配置文件,发现 as access 配置项中有一个 allowActions 属性,这个字段就是用来对配置的操作忽略权限控制用的!

既然如此,为了能继续进行操作,我们先把所有的操作都忽略吧。配置allowActions的值等于 “*” 即可。后面我们给用户分配权限后再回来把下面的“*”去掉。

'as access' => [
    'class' => 'mdm\admin\components\AccessControl',
    'allowActions' => [
        //这里是允许访问的action
        //controller/action
        '*',
    ]
],

我们在开篇就讲到,yii2-admin 是一套封装好的界面化权限管理组件,按理说我们上面配置好了,就可以看到界面呀,界面呢?

界面在这里,下面大家可以通过浏览器访问如下地址:

/index.php?r=admin
/index.php?r=admin/route
/index.php?r=admin/permission
/index.php?r=admin/role
/index.php?r=admin/assignment

我们发现几乎每一个操作都是有数据的,这不难理解,因为这些数据是我们上面几个小节分配过的!下面我们就来看看这个界面化是怎么玩

继续阅读

还有44%的精彩内容,购买继续阅读