• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/rights.php
  • Класс: BitrixLandingRights
  • Вызов: Rights::getAccessFilter
static function getAccessFilter(array $additionalFilterOr = [])
{
	$filter = [];

	if (
		self::isOn() &&
		!self::isAdmin() &&
		self::isFeatureOn() &&
		self::exist()
	)
	{
		$tasks = self::getAccessTasksReferences();
		$extendedRights = self::isExtendedMode();
		$uid = self::getContextUserId();

		if ($extendedRights)
		{
			$filter[] = [
				'LOGIC' => 'OR',
				[
					'!RIGHTS.TASK_ID' => $tasks[Rights::ACCESS_TYPES['denied']],
					'RIGHTS.USER_ACCESS.USER_ID' => $uid
				],
				[
					'=RIGHTS.TASK_ID' => null
				],
				$additionalFilterOr
			];
		}
		else
		{
			if ($additionalFilterOr)
			{
				$filter[] = [
					'LOGIC' => 'OR',
					[
						'!RIGHTS.TASK_ID' => $tasks[Rights::ACCESS_TYPES['denied']],
						'RIGHTS.USER_ACCESS.USER_ID' => $uid
					],
					$additionalFilterOr
				];
			}
			else
			{
				$filter['RIGHTS.USER_ACCESS.USER_ID'] = $uid;
				$filter['!RIGHTS.TASK_ID'] = $tasks[Rights::ACCESS_TYPES['denied']];
			}
		}
	}

	return $filter;
}