- Модуль: security
- Путь к файлу: ~/bitrix/modules/security/classes/general/iprule.php
- Класс: CSecurityIPRule
- Вызов: CSecurityIPRule::Add
public function Add($arFields)
{
global $DB, $CACHE_MANAGER;
if(!$this->CheckFields($arFields, 0))
return false;
if(!array_key_exists("RULE_TYPE", $arFields))
$arFields["RULE_TYPE"] = "M";
if(!array_key_exists("ADMIN_SECTION", $arFields))
$arFields["ADMIN_SECTION"] = "Y";
if(!array_key_exists("ACTIVE", $arFields))
$arFields["ACTIVE"] = "Y";
if(!array_key_exists("SORT", $arFields))
$arFields["SORT"] = 500;
$ID = $DB->Add("b_sec_iprule", $arFields);
if($ID > 0)
{
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 $ID;
}