2020-01-29 11:26:01 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
namespace console\controllers;
|
|
|
|
|
|
|
|
|
2021-08-12 13:57:00 +03:00
|
|
|
use common\models\User;
|
2020-01-29 11:26:01 +03:00
|
|
|
use Yii;
|
|
|
|
use yii\console\Controller;
|
|
|
|
|
|
|
|
class RbacController extends Controller
|
|
|
|
{
|
|
|
|
public function actionInit()
|
|
|
|
{
|
|
|
|
$auth = Yii::$app->authManager;
|
|
|
|
|
|
|
|
$secure = $auth->createPermission('secure');
|
|
|
|
$secure->description = 'Admin panel';
|
|
|
|
$auth->add($secure);
|
|
|
|
|
|
|
|
$front = $auth->createPermission('front');
|
|
|
|
$front->description = 'Frontend';
|
|
|
|
$auth->add($front);
|
|
|
|
|
|
|
|
$user = $auth->createRole('user');
|
|
|
|
$auth->add($user);
|
|
|
|
$auth->addChild($user, $front);
|
|
|
|
|
|
|
|
$admin = $auth->createRole('admin');
|
|
|
|
$auth->add($admin);
|
|
|
|
$auth->addChild($admin, $secure);
|
|
|
|
$auth->addChild($admin, $user);
|
|
|
|
|
|
|
|
$auth->assign($user, 2);
|
|
|
|
$auth->assign($admin, 1);
|
|
|
|
}
|
2021-08-12 13:57:00 +03:00
|
|
|
|
2022-12-01 14:11:29 +03:00
|
|
|
/**
|
|
|
|
* Add company manager role
|
|
|
|
*/
|
|
|
|
public function actionCreateCompanyManagerRole()
|
|
|
|
{
|
|
|
|
$auth = Yii::$app->getAuthManager();
|
|
|
|
|
|
|
|
$role = $auth->createRole('company_manager');
|
|
|
|
$role->description = 'Менеджер компании контр агента';
|
|
|
|
$auth->add($role);
|
|
|
|
|
|
|
|
$this->stdout('Done!' . PHP_EOL);
|
|
|
|
}
|
|
|
|
|
2021-08-12 13:57:00 +03:00
|
|
|
public function actionCreateEditor()
|
|
|
|
{
|
|
|
|
$auth = Yii::$app->authManager;
|
|
|
|
|
|
|
|
$confidentialInformation = $auth->createPermission('confidential_information');
|
|
|
|
$confidentialInformation->description = 'Возможность видеть конфиденциальную информацию';
|
|
|
|
$auth->add($confidentialInformation);
|
|
|
|
|
|
|
|
$secure = $auth->getPermission('secure');
|
|
|
|
|
|
|
|
$profileEditor = $auth->createRole('profileEditor');
|
|
|
|
$auth->add($profileEditor);
|
|
|
|
$auth->addChild($profileEditor, $secure);
|
|
|
|
|
|
|
|
$admin = $auth->getRole('admin');
|
|
|
|
$auth->addChild($admin, $confidentialInformation);
|
|
|
|
$auth->addChild($admin, $profileEditor);
|
|
|
|
|
|
|
|
$profileEditorUser = $this->createEditor();
|
|
|
|
$auth->assign($profileEditor, $profileEditorUser->id);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private function createEditor()
|
|
|
|
{
|
|
|
|
if (!($user = User::findByUsername('profile_editor'))) {
|
|
|
|
$user = new User();
|
|
|
|
$user->username = 'profile_editor';
|
|
|
|
$user->email = 'profile_editor@itguild.info';
|
|
|
|
$user->setPassword('0023edsaqw');
|
|
|
|
$user->generateAuthKey();
|
|
|
|
$user->save(false);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $user;
|
|
|
|
}
|
2022-12-28 11:45:57 +03:00
|
|
|
|
|
|
|
public function actionCreateDefaultAccessRules()
|
|
|
|
{
|
|
|
|
$auth = Yii::$app->authManager;
|
|
|
|
$admin = $auth->getRole('admin');
|
|
|
|
$profileEditor = $auth->getRole('profileEditor');
|
|
|
|
|
|
|
|
$test = $auth->createPermission('test');
|
|
|
|
$test->description = 'Модуль "Тестовые задания"';
|
|
|
|
$auth->add($test);
|
|
|
|
$auth->addChild($admin, $test);
|
|
|
|
|
|
|
|
$questionnaire = $auth->createPermission('questionnaire');
|
|
|
|
$questionnaire->description = 'Модуль "Анкеты": Создание, редактирование анкет, категорий анкет, вопросов, проверка ответов пользователей';
|
|
|
|
$auth->add($questionnaire);
|
|
|
|
$auth->addChild($admin, $questionnaire);
|
|
|
|
|
|
|
|
$interview = $auth->createPermission('interview');
|
|
|
|
$interview->description = 'Модуль "Запрос интервью"';
|
|
|
|
$auth->add($interview);
|
|
|
|
$auth->addChild($admin, $interview);
|
|
|
|
|
|
|
|
$options = $auth->createPermission('options');
|
|
|
|
$options->description = 'Модуль "Опции"';
|
|
|
|
$auth->add($options);
|
|
|
|
$auth->addChild($admin, $options);
|
|
|
|
|
|
|
|
$reports = $auth->createPermission('reports');
|
|
|
|
$reports->description = 'Модуль "Отчёты"';
|
|
|
|
$auth->add($reports);
|
|
|
|
$auth->addChild($admin, $reports);
|
|
|
|
|
|
|
|
$calendar = $auth->createPermission('calendar');
|
|
|
|
$calendar->description = 'Модуль "Календарь ДР"';
|
|
|
|
$auth->add($calendar);
|
|
|
|
$auth->addChild($admin, $calendar);
|
|
|
|
|
|
|
|
$notes = $auth->createPermission('notes');
|
|
|
|
$notes->description = 'Модуль "Заметки"';
|
|
|
|
$auth->add($notes);
|
|
|
|
$auth->addChild($admin, $notes);
|
|
|
|
|
|
|
|
$accesses = $auth->createPermission('accesses');
|
|
|
|
$accesses->description = 'Модуль "Доступы"';
|
|
|
|
$auth->add($accesses);
|
|
|
|
$auth->addChild($admin, $accesses);
|
|
|
|
|
|
|
|
$achievements = $auth->createPermission('achievements');
|
|
|
|
$achievements->description = 'Модуль "Достижения"';
|
|
|
|
$auth->add($achievements);
|
|
|
|
$auth->addChild($admin, $achievements);
|
|
|
|
|
|
|
|
$holiday = $auth->createPermission('holiday');
|
|
|
|
$holiday->description = 'Модуль "Отпуска"';
|
|
|
|
$auth->add($holiday);
|
|
|
|
$auth->addChild($admin, $holiday);
|
|
|
|
|
|
|
|
$balance = $auth->createPermission('balance');
|
|
|
|
$balance->description = 'Модуль "Баланс"';
|
|
|
|
$auth->add($balance);
|
|
|
|
$auth->addChild($admin, $balance);
|
|
|
|
|
|
|
|
$hh = $auth->createPermission('hh');
|
|
|
|
$hh->description = 'Модуль "Hh.ru"';
|
|
|
|
$auth->add($hh);
|
|
|
|
$auth->addChild($admin, $hh);
|
|
|
|
|
|
|
|
$company = $auth->createPermission('company');
|
|
|
|
$company->description = 'Модуль "Компании"';
|
|
|
|
$auth->add($company);
|
|
|
|
$auth->addChild($admin, $company);
|
|
|
|
|
|
|
|
$task = $auth->createPermission('task');
|
|
|
|
$task->description = 'Модуль "Задачи"';
|
|
|
|
$auth->add($task);
|
|
|
|
$auth->addChild($admin, $task);
|
|
|
|
|
|
|
|
$project = $auth->createPermission('project');
|
|
|
|
$project->description = 'Модуль "Проекты"';
|
|
|
|
$auth->add($project);
|
|
|
|
$auth->addChild($admin, $project);
|
|
|
|
|
|
|
|
$documents = $auth->createPermission('document');
|
|
|
|
$documents->description = 'Модуль "Документы": Создание, редактирование документов, их полей и шаблонов';
|
|
|
|
$auth->add($documents);
|
|
|
|
$auth->addChild($admin, $documents);
|
|
|
|
|
|
|
|
$employee = $auth->createPermission('employee');
|
|
|
|
$employee->description = 'Модуль "Сотрудники"';
|
|
|
|
$auth->add($employee);
|
|
|
|
$auth->addChild($admin, $employee);
|
|
|
|
|
|
|
|
$card = $auth->createPermission('card');
|
|
|
|
$card->description = 'Модуль "Профили"';
|
|
|
|
$auth->add($card);
|
|
|
|
$auth->addChild($admin, $card);
|
|
|
|
$auth->addChild($profileEditor, $card);
|
|
|
|
|
|
|
|
$settings = $auth->createPermission('settings');
|
|
|
|
$settings->description = 'Модуль "Настройки"';
|
|
|
|
$auth->add($settings);
|
|
|
|
$auth->addChild($admin, $settings);
|
|
|
|
|
|
|
|
$skills = $auth->createPermission('settings/skill');
|
|
|
|
$skills->description = 'Навыки';
|
|
|
|
$auth->add($skills);
|
|
|
|
$auth->addChild($admin, $skills);
|
|
|
|
$auth->addChild($profileEditor, $skills);
|
|
|
|
}
|
2020-01-29 11:26:01 +03:00
|
|
|
}
|