yii2项目实战-yii2-admin组件配置及使用
更新于 2016年10月09日 by 白狼 被浏览了 2466 次

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

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

今天,我们在前面的基础之上,再更详细的操作一遍,一方面是为了巩固前面的基础知识,另一方面也是为了完善我们的管理平台。

1、安装

composer require mdmsoft/yii2-admin "~2.0"

2、安装好了之后,我们打开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的分配问题一文中已经带大家实现过了一部分源码,现在想想,也不难嘛。

好了,不废话了,具体细节自己慢慢摸索吧,我们继续本节内容。

现在我们“遭受”权限控制,步步403,步步Forbidden,没法进行了!我们打开配置文件,发现 as access配置项中有一个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%的精彩内容,购买继续阅读