如何将Yeesoft / Yii2 cms RBAC(基于角色的访问控制)与YII2前端RBAC集成?

时间:2018-04-05 15:22:59

标签: php yii2 rbac yii2-rbac

我一直在使用yii2高级模板,我现在想要实现 一些RBAC进入我的前端项目的控制器。

来自https://github.com/yeesoft/yii2-yee-cms的Yeesoft / Yii2 cms RBAC控制面板给我留下了非常深刻的印象,尽管我可能不会使用很多内容管理功能。但是我对它的控制面板印象深刻,并希望用它来控制前端访问权限,为我的员工提供某些权限。

我已将此代码包含在其组件部分下的前端\ config \ main.php中。

'components' => [

    'authManager' => [
            'class' => 'yii\rbac\DbManager'
    ],
]

这使我能够在前端控制器中包含如下代码

if (!\Yii::$app->user->can('createEmployee')) {
        throw new \yii\web\ForbiddenHttpException('You do not have permission to create an employee.');
    }  

控制访问权限。

我正在使用yeesoft的数据库,我正在考虑将我的前端数据库中的所有数据迁移到yeesoft的cms数据库,因为我可以使用控制面板在其下创建权限并访问权限数据,而无需使用<编写大量的控制台迁移代码/ p>

Yii::$app->authManager;

和其他复杂的代码如下:

$auth = Yii::$app->authManager;
    //create the permission
    $manageCleansbutnotusers = $auth->createPermission('manageCleansbutnotusers');
    $manageCleansbutnotusers->description = 'Manage Cleans but not Users';
    //add the permission 
    $auth->add($manageCleansbutnotusers);

    //create the permission
    $manageCleansandusers = $auth->createPermission('manageCleansandusers');
    $manageCleansandusers->description = 'Manage Cleans and Users';
    //add the permission
    $auth->add($manageCleansandusers);

    //create the role
    $moderator = $auth->createRole('moderator');
    $moderator->description = 'Moderator';
    //add the role
    $auth->add($moderator);
    //attach the permissions to the role
    $auth->addChild($moderator, $manageCleansbutnotusers);

    //create the role
    $admin = $auth->createRole('admin');
    $admin->description = 'Administrator';
    //add the role 
    $auth->add($admin);
    //attach both permissions to the admin role
    $auth->addChild($admin, $moderator);
    $auth->addChild($admin, $manageCleansandusers);

我过去用于迁移目的。

有人可以告诉我更好的方法吗?我确信有人使用Yeesoft cms控制面板来控制对前端的访问,而不必诉诸于以下内容:

 'components' => [

    'authManager' => [
            'class' => 'yii\rbac\DbManager'
    ],
]

1 个答案:

答案 0 :(得分:1)

在Yii2高级设置中:前端和后端应用程序各自都有自己的配置。对于前端和后端具有共性的情况,可以利用公共配置。例如,数据库,AD登录或钩子扩展的配置。

  • 后端 - 后端Web应用程序。
  • 常用 - 所有应用程序通用的文件。
  • console - console application。
  • 环境 - 环境配置。
  • 前端 - 前端Web应用程序。

请参阅Yii-App-Advanced