• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/sign/access.php
  • Класс: Bitrix\Crm\Integration\Sign\Access
  • Вызов: Access::installDefaultRoles
static function installDefaultRoles(bool $removeAllPrevious = false): string
{
	self::loadLanguageFile();

	$filter = $removeAllPrevious ? [
		'=GROUP_CODE' => RolePermissionService::ROLE_GROUP_CODE,
	] : [
		'=NAME' => self::DEFAULT_ROLE_NAME,
		'=IS_SYSTEM' => 'Y',
	];
	$existedRoles = CCrmRole::GetList(
		['ID' => 'DESC', ],
		$filter
	);

	while($existedRole = $existedRoles->Fetch())
	{
		if (isset($existedRole['ID']))
		{
			(new CCrmRole)->Delete($existedRole['ID']);
		}
	}

	$accessList = [
		CCrmOwnerType::ContactName => [
			'READ' => ['-' => CCrmPerms::PERM_ALL],
			'EXPORT' => ['-' => CCrmPerms::PERM_ALL],
			'IMPORT' => ['-' => CCrmPerms::PERM_ALL],
			'ADD' => ['-' => CCrmPerms::PERM_ALL],
			'WRITE' => ['-' => CCrmPerms::PERM_ALL],
			'DELETE' => ['-' => CCrmPerms::PERM_ALL],
		],
		CCrmOwnerType::SmartDocumentName => [
			'READ' => ['-' => CCrmPerms::PERM_ALL],
			'EXPORT' => ['-' => CCrmPerms::PERM_ALL],
			'IMPORT' => ['-' => CCrmPerms::PERM_ALL],
			'ADD' => ['-' => CCrmPerms::PERM_ALL],
			'WRITE' => ['-' => CCrmPerms::PERM_ALL],
			'DELETE' => ['-' => CCrmPerms::PERM_ALL],
		],
	];

	$result = self::install(
		Loc::getMessage('CRM_SIGN_ROLE_EMPLOYMENT'),
		$accessList,
		RolePermissionService::ROLE_GROUP_CODE . '_EMPLOYMENT',
		self::getNeededGroupId('EMPLOYEES_' . self::getSiteId())
	);

	if (!empty($result))
	{
		return $result;
	}

	return self::install(
		Loc::getMessage('CRM_SIGN_ROLE_CHIEF'),
		$accessList,
		RolePermissionService::ROLE_GROUP_CODE . '_CHIEF',
		self::getNeededGroupId('DIRECTION')
	);
}