/** * @return Filter */ protected static function internalizeFilter(array $params) { $filterParams = Filter::internalizeParams($params); if (isset($params['SEMANTIC_ID'])) { if (!isset($filterParams['extras'])) { $filterParams['extras'] = array(); } $filterParams['extras']['semanticID'] = $params['SEMANTIC_ID']; } return new Filter($filterParams); }
protected function __construct(array $settings, Filter $filter, $userID = 0, $enablePermissionCheck = true) { $this->settings = $settings; $this->filter = $filter; $this->responsibleIDs = $this->filter->getResponsibleIDs(); if (!is_int($userID)) { $userID = (int) $userID; } if ($userID <= 0) { $userID = \CCrmSecurityHelper::GetCurrentUserID(); } $this->userID = $userID; if (!is_bool($enablePermissionCheck)) { $enablePermissionCheck = (bool) $enablePermissionCheck; } $this->enablePermissionCheck = $enablePermissionCheck; //Disable permission check if filter by current user is enabled. if ($this->enablePermissionCheck && is_array($this->responsibleIDs) && count($this->responsibleIDs) === 1 && (int) $this->responsibleIDs[0] === $this->userID) { $this->enablePermissionCheck = false; } }