Exemple #1
0
 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;
 }