function AddRuleExclFiles($files) { if (empty($files)) { return; } $exclToUpdate = array(); if (!is_array($files)) { $files = array($files); } foreach ($files as $file) { $rsIPRule = CSecurityIPRule::GetList(array("ID"), array("PATH" => $file, "ACTIVE" => "Y"), array("ID" => "ASC")); $masks = array(); while ($arIPRule = $rsIPRule->Fetch()) { if (array_key_exists($arIPRule["ID"], $exclToUpdate)) { $masks = array_merge($exclToUpdate[$arIPRule["ID"]], $masks); } else { $masks = array($file); } $exclToUpdate[$arIPRule["ID"]] = $masks; } } foreach ($exclToUpdate as $rule_id => $excl_mask) { $masks = CSecurityIPRule::GetRuleExclMasks($rule_id); $masks = array_unique(array_merge($masks, $excl_mask)); CSecurityIPRule::UpdateRuleMasks($rule_id, false, $masks); } }