- Модуль: ldap
- Путь к файлу: ~/bitrix/modules/ldap/classes/general/ldap_server.php
- Класс: CLdapServer
- Вызов: CLdapServer::Update
static function Update($ID, $arFields)
{
global $DB, $APPLICATION;
$APPLICATION->ResetException();
$ID = intval($ID);
if(is_set($arFields, "ACTIVE") && $arFields["ACTIVE"]!="Y")
$arFields["ACTIVE"]="N";
if(is_set($arFields, "SYNC") && $arFields["SYNC"]!="Y")
$arFields["SYNC"]="N";
if(is_set($arFields, "SYNC_USER_ADD") && $arFields["SYNC_USER_ADD"] != "Y")
$arFields["SYNC_USER_ADD"] = "N";
if(is_set($arFields, "CONVERT_UTF8") && $arFields["CONVERT_UTF8"]!="Y")
$arFields["CONVERT_UTF8"]="N";
if(is_set($arFields, "USER_GROUP_ACCESSORY") && $arFields["USER_GROUP_ACCESSORY"]!="Y")
$arFields["USER_GROUP_ACCESSORY"]="N";
if(is_set($arFields, "IMPORT_STRUCT") && $arFields["IMPORT_STRUCT"]!="Y")
$arFields["IMPORT_STRUCT"]="N";
if(is_set($arFields, "STRUCT_HAVE_DEFAULT") && $arFields["STRUCT_HAVE_DEFAULT"]!="Y")
$arFields["STRUCT_HAVE_DEFAULT"]="N";
if(is_set($arFields, "SET_DEPARTMENT_HEAD") && $arFields["SET_DEPARTMENT_HEAD"]!="Y")
$arFields["SET_DEPARTMENT_HEAD"]="N";
if(!CLdapServer::CheckFields($arFields, $ID))
return false;
if(is_set($arFields, "ADMIN_PASSWORD"))
$arFields["ADMIN_PASSWORD"] = Encryption::encrypt($arFields["ADMIN_PASSWORD"]);
if(is_set($arFields, "FIELD_MAP") && is_array($arFields["FIELD_MAP"]))
{
$arFields["USER_NAME_ATTR"] = "".$arFields["FIELD_MAP"]["NAME"];
$arFields["USER_LAST_NAME_ATTR"] = "".$arFields["FIELD_MAP"]["LAST_NAME"];
$arFields["USER_EMAIL_ATTR"] = "".$arFields["FIELD_MAP"]["EMAIL"];
$arFields["FIELD_MAP"] = serialize($arFields["FIELD_MAP"]);
}
if(isset($arFields["SYNC"]) || isset($arFields["SYNC_PERIOD"]))
{
$dbld = CLdapServer::GetById($ID);
$arLdap = $dbld->Fetch();
}
$strUpdate = $DB->PrepareUpdate("b_ldap_server", $arFields);
$strSql =
"UPDATE b_ldap_server SET ".
$strUpdate." ".
"WHERE ID=".$ID;
$DB->Query($strSql);
if(is_set($arFields, 'GROUPS'))
CLdapServer::SetGroupMap($ID, $arFields['GROUPS']);
if(isset($arFields["SYNC"]) || isset($arFields["SYNC_PERIOD"]))
{
if($arLdap)
{
if(isset($arFields["SYNC"]))
{
if($arFields["SYNC"]!="Y" && $arLdap["SYNC"]=="Y")
CLdapServer::__UpdateAgentPeriod($ID, 0);
elseif($arFields["SYNC"]=="Y" && $arLdap["SYNC"]!="Y")
CLdapServer::__UpdateAgentPeriod($ID, (isset($arFields["SYNC_PERIOD"])? $arFields["SYNC_PERIOD"] : $arLdap["SYNC_PERIOD"]));
elseif(isset($arFields["SYNC_PERIOD"]) && $arLdap["SYNC_PERIOD"]!=$arFields["SYNC_PERIOD"])
CLdapServer::__UpdateAgentPeriod($ID, $arFields["SYNC_PERIOD"]);
}
elseif($arLdap["SYNC_PERIOD"]!=$arFields["SYNC_PERIOD"])
CLdapServer::__UpdateAgentPeriod($ID, $arFields["SYNC_PERIOD"]);
}
}
return true;
}