簡體   English   中英

如何將Yeesoft / Yii2 cms RBAC(基於角色的訪問控制)與YII2前端RBAC集成?

[英]How to integrate Yeesoft/Yii2 cms RBAC (Role Based Access Control) with YII2 frontend RBAC?

我一直在使用yii2高級模板,現在我想在前端項目的控制器中實現一些RBAC。

來自https://github.com/yeesoft/yii2-yee-cms的 Yeesoft的/ Yii2 cms RBAC控制面板給我留下了深刻的印象,盡管我可能不會使用它們的很多內容管理功能。 但是,它的控制面板給我留下了深刻的印象,並希望使用它來控制前端訪問權限並授予我的員工某些權限。

我在其“組件”部分的“ frontend \\ 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數據庫,因為我可以使用控制面板在其下創建權限並訪問權限數據,而不必編寫使用以下內容的大量控制台遷移代碼

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'
    ],
]

在Yii2高級設置中:前端和后端應用程序都有各自的配置。 對於前端和后端具有通用性的實例,可以利用通用配置。 例如,數據庫,AD登錄名或掛鈎擴展的配置。

  • 后端-后端Web應用程序。
  • 通用-所有應用程序通用的文件。
  • console-控制台應用程序。
  • 環境-環境配置。
  • frontend-前端Web應用程序。

參見Yii-App-Advanced

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM