CanDoOperation('security_iprule_settings_read'); $canWrite = $USER->CanDoOperation('security_iprule_settings_write'); if(!$canRead && !$canWrite) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $aTabs = array( array( "DIV" => "edit1", "TAB" => GetMessage("SEC_IP_EDIT_TAB"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("SEC_IP_EDIT_TAB_TITLE"), ), ); $tabControl = new CAdminTabControl("tabControl", $aTabs, true, true); $ID = isset($_REQUEST["ID"]) ? intval($_REQUEST["ID"]) : 0; // Id of the edited record $strError = ""; $bVarsFromForm = false; $bShowForce = false; $message = CSecurityIPRule::CheckAntiFile(true); if($_SERVER["REQUEST_METHOD"] == "POST" && (isset($_REQUEST["save"]) || isset($_REQUEST["apply"])) && $canWrite && check_bitrix_sessid()) { if(!is_array($_POST["INCL_IPS"])) $inclIps = array($_POST["INCL_IPS"]); else $inclIps = $_POST["INCL_IPS"]; $filteredInclIps = preg_grep("#^\d{1,3}(\.\d{1,3}){3}#", $inclIps); if(empty($filteredInclIps)) $APPLICATION->ThrowException(GetMessage("SEC_IP_EDIT_SAVE_ERROR_EMPTY_INCL_IPS")); unset($inclIps); if(!is_array($_POST["INCL_MASKS"])) $inclMasks = array($_POST["INCL_MASKS"]); else $inclMasks = $_POST["INCL_MASKS"]; $filteredInclMasks = preg_grep("#^/#", $inclMasks); if(empty($filteredInclMasks)) $APPLICATION->ThrowException(GetMessage("SEC_IP_EDIT_SAVE_ERROR_EMPTY_INCL_MASKS")); unset($inclMasks); if($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("SEC_IP_EDIT_SAVE_ERROR"), $APPLICATION->GetException()); $bVarsFromForm = true; } else { $ob = new CSecurityIPRule; $selfBlock = $ob->CheckIP($_POST["INCL_IPS"], $_POST["EXCL_IPS"]); if($selfBlock && (COption::GetOptionString("security", "ipcheck_allow_self_block")!=="Y")) { if($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("SEC_IP_EDIT_SAVE_ERROR"), $e); $bVarsFromForm = true; } elseif($selfBlock && $_POST["USE_THE_FORCE_LUK"]!=="Y") { if($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("SEC_IP_EDIT_SAVE_ERROR"), $e); $bVarsFromForm = true; $bShowForce = true; } else { $arFields = array( "RULE_TYPE" => "M", "ACTIVE" => $_POST["ACTIVE"], "ADMIN_SECTION" => $_POST["ADMIN_SECTION"], "SITE_ID" => $_POST["SITE_ID"]=="NOT_REF"? false: $_POST["SITE_ID"], "SORT" => $_POST["SORT"], "NAME" => $_POST["NAME"], "ACTIVE_FROM" => $_POST["ACTIVE_FROM"], "ACTIVE_TO" => $_POST["ACTIVE_TO"], "INCL_IPS" => $_POST["INCL_IPS"], "EXCL_IPS" => $_POST["EXCL_IPS"], "INCL_MASKS" => $_POST["INCL_MASKS"], "EXCL_MASKS" => $_POST["EXCL_MASKS"], ); if($ID > 0) { $res = $ob->Update($ID, $arFields); } else { $ID = $ob->Add($arFields); $res = ($ID>0); } if($res) { if($_REQUEST["apply"] != "") LocalRedirect("/bitrix/admin/security_iprule_edit.php?ID=".$ID."&lang=".LANG."&".$tabControl->ActiveTabParam()); else LocalRedirect("/bitrix/admin/security_iprule_list.php?lang=".LANG); } else { if($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("SEC_IP_EDIT_SAVE_ERROR"), $e); $bVarsFromForm = true; } } } } ClearVars("str_"); $str_ACTIVE = "Y"; $str_ADMIN_SECTION = "Y"; $str_SITE_ID = ""; $str_SORT = "500"; $str_NAME = ""; $str_ACTIVE_FROM = ""; $str_ACTIVE_TO = ""; if($ID>0) { $rs = CSecurityIPRule::GetList(array(), array("=ID"=>$ID), array()); if(!$rs->ExtractFields("str_")) $ID = 0; } if($bVarsFromForm) $DB->InitTableVarsForEdit("b_sec_iprule", "", "str_"); $APPLICATION->SetTitle(($ID>0? GetMessage("SEC_IP_EDIT_EDIT_TITLE") : GetMessage("SEC_IP_EDIT_ADD_TITLE"))); CUtil::InitJSCore(); $APPLICATION->AddHeadScript('/bitrix/js/security/admin/interface.js'); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "TEXT" => GetMessage("SEC_IP_EDIT_MENU_LIST"), "TITLE" => GetMessage("SEC_IP_EDIT_MENU_LIST_TITLE"), "LINK" => "security_iprule_list.php?lang=".LANG, "ICON" => "btn_list", ) ); if($ID > 0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT" => GetMessage("SEC_IP_EDIT_MENU_ADD"), "TITLE" => GetMessage("SEC_IP_EDIT_MENU_ADD_TITLE"), "LINK" => "security_iprule_edit.php?lang=".LANG, "ICON" => "btn_new", ); $aMenu[] = array( "TEXT" => GetMessage("SEC_IP_EDIT_MENU_DELETE"), "TITLE" => GetMessage("SEC_IP_EDIT_MENU_DELETE_TITLE"), "LINK" => "javascript:if(confirm('".GetMessage("SEC_IP_EDIT_MENU_DELETE_CONF")."'))window.location='security_iprule_list.php?ID=".$ID."&action=delete&lang=".LANG."&".bitrix_sessid_get()."';", "ICON" => "btn_delete", ); } $context = new CAdminContextMenu($aMenu); $context->Show(); if($message) echo $message->Show(); ?>
Begin(); ?> BeginNextTab(); ?> 0):?> : : > : > : : : : : :
$ip):?>
">
: $ip):?>
">
:
$mask):?>
">
: $mask):?>
">
Buttons( array( "disabled"=>(!$canWrite), "back_url"=>"security_iprule_list.php?lang=".LANG, ) ); ?> 0):?> End(); ?>
ShowWarnings("editform", $message); ?> *