• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Factory.php
  • Класс: Bitrix\Crm\Service\Factory
  • Вызов: Factory::getItemsFilteredByPermissions
public function getItemsFilteredByPermissions(
	array $parameters,
	?int $userId = null,
	string $operation = UserPermissions::OPERATION_READ
): array
{
	$userPermissions = Container::getInstance()->getUserPermissions($userId);
	if ($userPermissions->getUserId() === 0)
	{
		// no data for unauthorized user
		return [];
	}
	$filter = $parameters['filter'] ?? [];
	$entityTypes = $this->collectEntityTypesForPermissions($filter, $userId);
	if ($this->isCategoriesSupported())
	{
		$select = $parameters['select'] ?? [];
		// there is no need to add to select if it is empty - it will be filled in prepareGetListParameters
		if (!empty($select))
		{
			$parameters['select'][] = Item::FIELD_NAME_CATEGORY_ID;
		}
	}

	$parameters['filter'] = $userPermissions->applyAvailableItemsFilter($filter, $entityTypes, $operation);

	return $this->getItems($parameters);
}