分类目录

链接

友情链接

统计信息

  • 日志总数:114篇
  • 评论总数:185条
  • 分类总数:11个
  • 标签总数:391个
  • 友情链接:0个
  • 网站运行:3236天

2019年十月
« 3月    
 123456
78910111213
14151617181920
21222324252627
28293031  
>
现在位置:    首页 > php/mysql > 正文

yii2 rbac 及使用 yii2-admin插件

php/mysql 暂无评论

1,rbac 是Yii2 框架自带的组件,它放在 vendor\yiisoft\yii2\rbac 下,但数据库还是要自己手动去迁移到你的项目数据库中去的

执行以下命令进行迁移

yii migrate --migrationPath=@yii/rbac/migrations/

执行后,会在你的项目数据库中生成四个表

auth_item:用于存储角色、权限和路由

auth_item_child:角色-权限的关联表

auth_assignment:用户-角色的关联表

auth_rule:这个表 我们暂时用不到  所有 先别管

2,yii2-admin 是一个第三方插件

哪么它们之间有什么关系呢?  因为yii2官方自带的rbac 是没有界面 的,而Yii2-admin 就是为 为组件提供界面操作的。

首先我们要安装 yii2-admin,此处我们通过 composer安装 进入到 项目的根目录 执行

composer require mdmsoft/yii2-admin "~2.0"

等到安装完成  你可以发现在  vendor目录下 多了个 mdmsoft 文件夹,没错 这就是Yii2-admin所有的东西

安装好了之后,我们打开 backend\config\main.php【advance 原结构,如果作了调整 自己行修改】,配置如下

return [
    'id' => 'app-backend',
    'basePath' => dirname(__DIR__),
    'controllerNamespace' => 'backend\controllers',
    'bootstrap' => ['log'],
    'modules' => [],
    
    //设置yii2-admin 模型位置
     'modules' => [
        'admin' => [        
            'class' => 'mdm\admin\Module',   
        ],
        //......
    ],
    
     #设置yii2-admin 组件的位置 别名
    'aliases' => [    
        '@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
    ],
   
    
    'components' => [
        'request' => [
            'csrfParam' => '_csrf-backend',
        ],
        'user' => [
            'identityClass' => 'backend\models\User',
            'enableAutoLogin' => true,
        ],

        'session' => [
            // this is the name of the session cookie used for login on the backend
            'name' => 'advanced-backend',
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],
 
   
        //rbac 组件配置
        'authManager' => [        
            'class' => 'yii\rbac\DbManager', //有两种方式,PhpManager
            'defaultRoles' => ['guest'],    
        ],
        
             //配置 rbac
        'authManager' => [        
            'class' => 'yii\rbac\DbManager',
            'defaultRoles' => ['guest'],    
        ],
        
        //语言翻译配置
        'i18n' => [  
                'translations' => [  
                    '*' => [  
                        'class' => 'yii\i18n\PhpMessageSource',  
                        'basePath' => '@frontend/messages', // if advanced application, set @frontend/messages  
                        'sourceLanguage' => 'en',  
                        'fileMap' => [  
                            //'main' => 'main.php',  
                        ],  
                    ],  
                ],  
            ],
        
        
    ],
    
    
    'as access' => [
        'class' => 'mdm\admin\components\AccessControl', //  mdm\admin 为上面设置的别名
        'allowActions' => [
            //这里是允许访问的action,不受权限控制
            //controller/action
            //'site/login','site/logout',
            '*', //开始时 先允许所有的操作
        ]
    ],


];

细心看一下  我上面标有 #rbac注释的 就是这次要增加的配置 

再刷新一下 发现 rbac生效了 哪么我们通过  YII2-admin 去浏览 rbac的界面


以下是yii2-admin路由地址:

/index.php?r=admin    //主界面

/index.php?r=admin/role //角色界面

/index.php?r=admin/permission //权限集界面

/index.php?r=admin/route   //路由界面  这里的路由就是 最小的权限,由他们组成permission的权限集 

到这里,yii2-admin+rbac的组合就完成了,你可以把它加入到你的后台去 比如:yii2-adminlte 中去;

t.jpg


本文版权归企业网站建设,做网站,网站建设,php网站建设,dedecms建站,ecshop二次开发,html空间,网站修改所有,转载引用请完整注明以下信息:
本文作者:admin
本文地址:yii2 rbac 及使用 yii2-admin插件 | 企业网站建设,做网站,网站建设,php网站建设,dedecms建站,ecshop二次开发,html空间,网站修改

抱歉!评论已关闭.