Как интегрировать систему управления доступом на основе ролей Yeesoft / Yii2 cms (управление доступом на основе ролей) с интерфейсом RBAC внешнего интерфейса YII2?

Я работал с расширенным шаблоном yii2, и теперь я хочу реализовать
немного RBAC в контроллеры моего внешнего интерфейса.

Я очень впечатлен панелью управления Yeacoft / Yii2 cms RBAC от https://github.com/yeesoft/yii2-yee-cms хотя я, вероятно, не буду использовать много их функциональности управления контентом. Однако я впечатлен ее панелью управления и хотел бы использовать ее для управления доступом к веб-интерфейсу, предоставляя определенные разрешения моим сотрудникам.

Я включил этот код в его 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'
],
]

0

Решение

В расширенной настройке Yii2: приложения веб-интерфейса и внутреннего интерфейса имеют свои собственные конфигурации. Общая конфигурация может быть использована для случаев, когда интерфейс и бэкэнд имеют общие черты. Например, конфигурации для баз данных, учетных записей AD или подключенных расширений.

  • backend — серверное веб-приложение.
  • общие — файлы, общие для всех приложений.
  • console — консольное приложение.
  • сред — конфиги среды.
  • веб-приложение — веб-приложение.

Увидеть Yii-App-Advanced.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]