• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/access/service/roledealcategoryservice.php
  • Класс: Bitrix\Sender\Access\Service\RoleDealCategoryService
  • Вызов: RoleDealCategoryService::fillDefaultDealCategoryPermission
public function fillDefaultDealCategoryPermission(int $dealCategoryId): array
{
	$query = [];
	$map = RoleUtil::preparedRoleMap();

	$managerRoleId = null;
	$adminRoleId = null;
	foreach ($map as $roleKey => $permissions)
	{
		$roleName = RoleUtil::getLocalizedName($roleKey);

		$roleId = $this->rolePermissionService->saveRole($roleName, $dealCategoryId);
		$query = array_merge($query, RoleUtil::buildInsertPermissionQuery($permissions, $roleId));

		if ($roleKey === 'MANAGER')
		{
			$managerRoleId = $roleId;
		}

		if ($roleKey === 'ADMIN')
		{
			$adminRoleId = $roleId;
		}
	}

	RoleUtil::insertPermissions($query);
	(new RoleRelationService())->saveRoleRelation([
		[
			'id' => $managerRoleId,
			'accessCodes' => [
				'AE0' => 'usergroups'
			],
		],
		[
			'id' => $adminRoleId,
			'accessCodes' => [
				'G1' => ''
			],
		],
	]);

	return $this->rolePermissionService->getRoleList(
		[

			"filter" => ["=DEAL_CATEGORY_ID" => $dealCategoryId]
		]
	);
}