• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/permission/processor.php
  • Класс: BitrixRpaPermissionProcessor
  • Вызов: Processor::process
public function process(array $permissions): Result
{
	$result = new Result();

	$currentPermissions = $this->currentPermissions;
	$deletePermissions = [];
	$addPermissions = [];
	$resultPermissions = [];
	foreach($currentPermissions as $key => $currentPermission)
	{
		$isFound = false;
		foreach($permissions as $permission)
		{
			if($this->isEqualPermissions($currentPermission, $permission))
			{
				$isFound = true;
				break;
			}
		}
		if(!$isFound)
		{
			$deletePermissions[] = $currentPermission;
		}
		else
		{
			$resultPermissions[] = $currentPermission;
		}
	}

	foreach($permissions as $permission)
	{
		$isFound = false;
		foreach($resultPermissions as $skipPermission)
		{
			if($this->isEqualPermissions($permission, $skipPermission))
			{
				$isFound = true;
				break;
			}
		}
		if(!$isFound)
		{
			$addPermissions[] = $permission;
			$resultPermissions[] = $permission;
		}
	}

	$result->setAddPermissions($addPermissions)->setDeletePermission($deletePermissions)->setResultPermissions($resultPermissions);

	return $result;
}