- Модуль: security
- Путь к файлу: ~/bitrix/modules/security/classes/general/iprule.php
- Класс: CSecurityIPRule
- Вызов: CSecurityIPRule::Update
public 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($strUpdate <> '')
{
$strSql = "
UPDATE b_sec_iprule SET
".$strUpdate."
WHERE ID = ".$ID."
";
if(!$DB->Query($strSql, false, "File: ".__FILE__."
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;
}