$arSections[$arRes['ID']] = $arRes; } $CACHE_MANAGER->EndTagCache(); $obCache->EndDataCache(array("SECTIONS" => $arSections, "STRUCTURE" => $arStructure)); } } if (CModule::IncludeModule('extranet')) { $arStructure[0][] = "extranet"; $arSections["extranet"] = array("ID" => "extranet", "NAME" => GetMessage("TASKS_EMP_EXTRANET")); } $arResult["STRUCTURE"] = $arStructure; $arResult["SECTIONS"] = $arSections; //last selected users $arResult["LAST_USERS"] = tasksGetLastSelected($arManagers, $bSubordinateOnly, $arParams["NAME_TEMPLATE"]); $arResult["LAST_USERS_IDS"] = is_array($arResult["LAST_USERS"]) ? array_slice(array_keys($arResult["LAST_USERS"]), 0, 10) : array(); $arResult['ROOT_DEP_USER'] = CUtil::PhpToJsObject(TasksGetDepartmentUsers($arResult["STRUCTURE"][0][0], $arParams['SITE_ID'], $arSubDeps, $arManagers, $arParams['SHOW_INACTIVE_USERS'], $arParams["NAME_TEMPLATE"])); // current users if (!is_array($arParams['VALUE'])) { $arParams['VALUE'] = explode(',', $arParams['VALUE']); } foreach ($arParams['VALUE'] as $key => $ID) { $arParams['VALUE'][$key] = intval(trim($ID)); } $arParams['VALUE'] = array_unique(array_filter($arParams['VALUE'])); $arResult["CURRENT_USERS"] = array(); if (sizeof($arParams["VALUE"])) { $arListedUsers = array(); $arFilter['!UF_DEPARTMENT'] = false; $arFilter['ID'] = implode('|', $arParams['VALUE']); // Prevent using users, that doesn't activate it's account // http://jabber.bx/view.php?id=29118
$arManagers = array(); if (($arRes = $dbRes->Fetch()) && is_array($arRes['UF_DEPARTMENT']) && count($arRes['UF_DEPARTMENT']) > 0) { $arManagers = array_keys(CTasks::GetDepartmentManagers($arRes['UF_DEPARTMENT'], $USER->GetID())); } $bSubordinateOnly = isset($_GET["S_ONLY"]) && $_GET["S_ONLY"] == "Y"; if (isset($_REQUEST["nt"])) { preg_match_all("/(#NAME#)|(#NOBR#)|(#\\/NOBR#)|(#LAST_NAME#)|(#SECOND_NAME#)|(#NAME_SHORT#)|(#SECOND_NAME_SHORT#)|\\s|\\,/", urldecode($_REQUEST["nt"]), $matches); $nameTemplate = implode("", $matches[0]); } else { $nameTemplate = CSite::GetNameFormat(false); } if ($_REQUEST['MODE'] == 'EMPLOYEES' && (!CModule::IncludeModule('extranet') || CExtranet::IsIntranetUser() || $SECTION_ID == 'extranet')) { if ($SECTION_ID != 'extranet') { $SECTION_ID = intval($_REQUEST['SECTION_ID']); } $arUsers = TasksGetDepartmentUsers($SECTION_ID, $SITE_ID, $arSubDeps, $arManagers, $_REQUEST['SHOW_INACTIVE_USERS'], $nameTemplate); $APPLICATION->RestartBuffer(); Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); echo CUtil::PhpToJsObject($arUsers); CMain::FinalActions(); // to make events work on bitrix24 die; } elseif ($_REQUEST['MODE'] == 'SEARCH') { CUtil::JSPostUnescape(); $APPLICATION->RestartBuffer(); $search = $_REQUEST['SEARCH_STRING']; $arUsers = array(); $arFilter = array("ACTIVE" => isset($_REQUEST["SHOW_INACTIVE_USERS"]) && $_REQUEST["SHOW_INACTIVE_USERS"] === "Y" ? "" : "Y", "NAME_SEARCH" => $search); if (!isset($_REQUEST["SHOW_INACTIVE_USERS"]) || $_REQUEST["SHOW_INACTIVE_USERS"] !== "Y") { $arFilter["CONFIRM_CODE"] = false; }