• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/driver.php
  • Класс: BitrixDocumentGeneratorDriver
  • Вызов: Driver::installDefaultRoles
static function installDefaultRoles()
{
	global $DB;
	if(!$DB->TableExists(RoleTable::getTableName()))
	{
		return '\Bitrix\DocumentGenerator\Driver::installDefaultRoles();';
	}
	$rolesCount = RoleTable::getCount();
	if($rolesCount > 0)
	{
		return '';
	}

	$role = new Role();
	$role->setCode('ADMIN')->setName('ADMIN');
	$addResult = $role->save();
	if($addResult->isSuccess())
	{
		$role->setPermissions([
			UserPermissions::ENTITY_SETTINGS => [
				UserPermissions::ACTION_MODIFY => UserPermissions::PERMISSION_ANY,
			],
			UserPermissions::ENTITY_TEMPLATES => [
				UserPermissions::ACTION_MODIFY => UserPermissions::PERMISSION_ANY,
			],
			UserPermissions::ENTITY_DOCUMENTS => [
				UserPermissions::ACTION_MODIFY => UserPermissions::PERMISSION_ANY,
				UserPermissions::ACTION_VIEW => UserPermissions::PERMISSION_ANY,
			],
		]);
		RoleAccessTable::add(array(
			'ROLE_ID' => $role->getId(),
			'ACCESS_CODE' => 'G1'
		));
	}

	$role = new Role();
	$role->setCode('MANAGER')->setName('MANAGER');
	$addResult = $role->save();
	if($addResult->isSuccess())
	{
		$role->setPermissions([
			UserPermissions::ENTITY_SETTINGS => [
				UserPermissions::ACTION_MODIFY => UserPermissions::PERMISSION_ANY,
			],
			UserPermissions::ENTITY_TEMPLATES => [
				UserPermissions::ACTION_MODIFY => UserPermissions::PERMISSION_ANY,
			],
			UserPermissions::ENTITY_DOCUMENTS => [
				UserPermissions::ACTION_MODIFY => UserPermissions::PERMISSION_ANY,
				UserPermissions::ACTION_VIEW => UserPermissions::PERMISSION_ANY,
			],
		]);
		if(Loader::includeModule('intranet'))
		{
			$departmentTree = CIntranetUtils::GetDeparmentsTree();
			$rootDepartment = (int)$departmentTree[0][0];

			if ($rootDepartment > 0)
			{
				RoleAccessTable::add(array(
					'ROLE_ID' => $role->getId(),
					'ACCESS_CODE' => 'DR'.$rootDepartment
				));
			}
		}
	}

	return "";
}