• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_invoice.php
  • Класс: \CAllCrmInvoice
  • Вызов: CAllCrmInvoice::BuildPermSql
static function BuildPermSql($sAliasPrefix = 'O', $mPermType = 'READ', $arOptions = [])
{
	$userId = null;
	if (isset($arOptions['PERMS']) && is_object($arOptions['PERMS']))
	{
		/** @var \CCrmPerms $arOptions['PERMS'] */
		$userId = $arOptions['PERMS']->GetUserID();
	}
	$builderOptions =
		\Bitrix\Crm\Security\QueryBuilder\Options::createFromArray((array)$arOptions)
			->setOperations((array)$mPermType)
			->setAliasPrefix((string)$sAliasPrefix)
	;

	$queryBuilder = \Bitrix\Crm\Service\Container::getInstance()
		->getUserPermissions($userId)
		->createListQueryBuilder(self::$TYPE_NAME, $builderOptions)
	;

	$result = $queryBuilder->build();

	if (!$result->hasAccess())
	{
		return '(1=0)';
	}

	if (!$result->hasRestrictions())
	{
		return '(1=1)';
	}

	return '(' . $result->getSql() . ')';
}