• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/sign/access/service/rolepermissionservice.php
  • Класс: Bitrix\Crm\Integration\Sign\Access\Service\RolePermissionService
  • Вызов: RolePermissionService::getSettings
protected function getSettings(): array;

protected function mapCurrentPermissions($permissions): array
{
	$preparedPermissions = [];
	$localPermissions = $this->getLocalPermissionList();
	foreach ($permissions as $roleId => $rolePermissions)
	{
		foreach ($rolePermissions as $entity => $permission)
		{
			foreach ($localPermissions as $value => $localPermission)
			{
				if (isset($preparedPermissions[$roleId][$localPermission['NAME']]))
				{
					continue;
				}
				$exploded = explode('_', $localPermission['NAME']);
				$action = array_pop($exploded);
				array_shift($exploded);
				array_shift($exploded);
				
				if (
					mb_strpos($entity, implode('_', $exploded)) === 0
					&& isset($permission[$action])
				)
				{
					$preparedPermissions[$roleId][$value] =
						[
							'VALUE' => $permission[$action]['-']
						]
					;
				}
			}
		}
	}
	
	return $preparedPermissions;
}