function Update($ID, $arFields) { global $DB, $CACHE_MANAGER; $ID = intval($ID); if ($ID <= 0) { return false; } if (!$this->CheckFields($arFields, $ID)) { return false; } $strUpdate = $DB->PrepareUpdate("b_sec_iprule", $arFields); if (strlen($strUpdate) > 0) { $strSql = "\n\t\t\t\tUPDATE b_sec_iprule SET\n\t\t\t\t" . $strUpdate . "\n\t\t\t\tWHERE ID = " . $ID . "\n\t\t\t"; if (!$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__)) { return false; } } if (array_key_exists("INCL_MASKS", $arFields)) { if (array_key_exists("EXCL_MASKS", $arFields)) { $this->UpdateRuleMasks($ID, $arFields["INCL_MASKS"], $arFields["EXCL_MASKS"]); } else { $this->UpdateRuleMasks($ID, $arFields["INCL_MASKS"], false); } } else { if (array_key_exists("EXCL_MASKS", $arFields)) { $this->UpdateRuleMasks($ID, false, $arFields["EXCL_MASKS"]); } } if (array_key_exists("INCL_IPS", $arFields)) { if (array_key_exists("EXCL_IPS", $arFields)) { $this->UpdateRuleIPs($ID, $arFields["INCL_IPS"], $arFields["EXCL_IPS"]); } else { $this->UpdateRuleIPs($ID, $arFields["INCL_IPS"], false); } } else { if (array_key_exists("EXCL_IPS", $arFields)) { $this->UpdateRuleIPs($ID, false, $arFields["EXCL_IPS"]); } } COption::RemoveOption("security", "iprules_count"); CSecurityIPRule::SetActive(CSecurityIPRule::GetActiveCount() > 0); if (CACHED_b_sec_iprule !== false) { $CACHE_MANAGER->CleanDir("b_sec_iprule"); } return true; }