public static function mailserviceUpdate($arParams) { global $USER; IncludeModuleLangFile(__FILE__); if (!$USER->CanDoOperation('bitrix24_config')) { throw new Exception(GetMessage('ACCESS_DENIED')); } if (empty($arParams['ID'])) { throw new Exception(GetMessage('MAIL_MAILSERVICE_EMPTY_ID')); } $result = Bitrix\Mail\MailServicesTable::getList(array('filter' => array('=ID' => $arParams['ID'], '=SITE_ID' => SITE_ID))); if (!$result->fetch()) { throw new Exception(GetMessage('MAIL_MAILSERVICE_EMPTY')); } $arFields = array('ACTIVE' => $arParams['ACTIVE'], 'NAME' => $arParams['NAME'], 'SERVER' => $arParams['SERVER'], 'PORT' => $arParams['PORT'], 'ENCRYPTION' => $arParams['ENCRYPTION'], 'LINK' => $arParams['LINK'], 'ICON' => CRestUtil::saveFile($arParams['ICON']) ?: $arParams['ICON'], 'SORT' => $arParams['SORT']); foreach ($arFields as $name => $value) { if (empty($value)) { unset($arFields[$name]); } } $result = Bitrix\Mail\MailServicesTable::update($arParams['ID'], $arFields); if (!$result->isSuccess()) { throw new Exception(join('; ', $result->getErrorMessages())); } return true; }
} $ID = intval($ID); switch ($_REQUEST['action']) { case "delete": @set_time_limit(0); $DB->StartTransaction(); if (!Bitrix\Mail\MailServicesTable::delete($ID)) { $DB->Rollback(); $lAdmin->AddGroupError(GetMessage("MAIL_MSERVICE_DELETE_ERROR"), $ID); } $DB->Commit(); break; case "activate": case "deactivate": $arFields = array('ACTIVE' => $_REQUEST['action'] == 'activate' ? 'Y' : 'N'); if (!Bitrix\Mail\MailServicesTable::update($ID, $arFields)) { if ($e = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage('SAVE_ERROR') . $ID . ": " . $e->GetString(), $ID); } } break; } } } $rsData = Bitrix\Mail\MailServicesTable::getList(array('filter' => array_filter($arFilter), 'order' => array(strtoupper($by) => $order))); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("MAIL_MSERVICE_ADM_TITLE"))); $arHeaders = array(); $arHeaders[] = array('id' => 'NAME', 'content' => GetMessage('MAIL_MSERVICE_ADM_NAME'), 'default' => true, 'sort' => 'name'); $arHeaders[] = array('id' => 'ACTIVE', 'content' => GetMessage('MAIL_MSERVICE_ADM_ACTIVE'), 'default' => true, 'sort' => 'active');
$str_SERVER = $ms['SERVER']; $str_PORT = $ms['PORT']; $str_ENCRYPTION = $ms['ENCRYPTION']; $str_LINK = $ms['LINK']; $str_ICON = $ms['ICON']; $str_TOKEN = $ms['TOKEN']; $str_SORT = $ms['SORT']; } else { $ID = 0; } if ($REQUEST_METHOD == "POST" && (strlen($save) > 0 || strlen($apply) > 0) && $MOD_RIGHT == "W" && check_bitrix_sessid()) { $ICON['old_file'] = $str_ICON; $ICON['del'] = $remove_icon; $arFields = array('SITE_ID' => $SITE_ID, 'ACTIVE' => $ACTIVE ?: 'N', 'NAME' => $NAME, 'SERVER' => $SERVER, 'PORT' => $PORT ?: null, 'ENCRYPTION' => $TYPE == 'imap' ? $bCanUseTLS ? $ENCRYPTION : 'N' : ($ENCRYPTION == 'N' ? 'N' : 'Y'), 'LINK' => $LINK, 'ICON' => $ICON, 'TOKEN' => $TOKEN, 'SORT' => $SORT); if ($ID > 0) { $result = Bitrix\Mail\MailServicesTable::update($ID, $arFields); } else { $arFields['SERVICE_TYPE'] = $TYPE; $result = Bitrix\Mail\MailServicesTable::add($arFields); $ID = $result->isSuccess() ? $result->getId() : 0; } if (!$result->isSuccess()) { $message = new CAdminMessage(array('MESSAGE' => GetMessage("MAIL_MSERVICE_EDT_ERROR"), 'DETAILS' => join('<br>', $result->getErrorMessages()))); } else { if (strlen($save) > 0) { LocalRedirect("mail_mailservice_admin.php?lang=" . LANG); } else { LocalRedirect($APPLICATION->GetCurPage() . "?lang=" . LANG . "&ID=" . $ID); } } }