- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
- Класс: CTasks
- Вызов: CTasks::GetFilter
static function GetFilter($arFilter, $sAliasPrefix = "", $arParams = false)
{
if (!is_array($arFilter))
{
$arFilter = [];
}
$arSqlSearch = [];
if (is_array($arParams) && array_key_exists('USER_ID', $arParams) && ($arParams['USER_ID'] > 0))
{
$userID = (int)$arParams['USER_ID'];
}
else
{
$userID = User::getId();
}
// if TRUE will be generated constraint for members
$bMembersTableJoined = false;
if (isset($arParams['bMembersTableJoined']))
{
$bMembersTableJoined = (bool)$arParams['bMembersTableJoined'];
}
$bGetZombie = false;
$sql = self::GetSqlByFilter($arFilter, $userID, $sAliasPrefix, $bGetZombie, $bMembersTableJoined, $arParams);
if ($sql <> '')
{
$arSqlSearch[] = $sql;
}
// enable legacy access if no option passed (by default)
// disable legacy access when ENABLE_LEGACY_ACCESS === true
// we can not switch legacy access off by default, because getFilter() can be used separately
$enableLegacyAccess = !is_array($arParams) || !array_key_exists('ENABLE_LEGACY_ACCESS', $arParams) || $arParams['ENABLE_LEGACY_ACCESS'] !== false;
if ($enableLegacyAccess && static::needAccessRestriction($arFilter, $arParams))
{
[$arSubSqlSearch, $fields] = static::getPermissionFilterConditions(
$arParams,
['ALIAS' => $sAliasPrefix]
);
if (!empty($arSubSqlSearch))
{
$arSqlSearch[] = " n/*access LEGACY BEGIN*/n (" .
implode(" OR ", $arSubSqlSearch) .
") n/*access LEGACY END*/n";
}
}
return $arSqlSearch;
}