array( "Back to Amavis" => "amavis-main.php" ), )); # Process an option function process_post_option($name,$option) { global $db; $results = array(); # Inherit if ($option == 0) { array_push($results,"$name = NULL"); array_push($results,"${name}_m = ".$db->quote(0)); # Explicit yes } elseif ($option == 1) { array_push($results,"$name = ".$db->quote(1)); array_push($results,"${name}_m = ".$db->quote(2)); # Explicit no } elseif ($option == 2) { array_push($results,"$name = ".$db->quote(0)); array_push($results,"${name}_m = ".$db->quote(2)); } return $results; }; # Process a value function process_post_value($name,$option,$value) { global $db; $results = array(); # Inherit if ($option == 0) { array_push($results,"$name = NULL"); array_push($results,"${name}_m = ".$db->quote(0)); # Override } elseif ($option == 2) { array_push($results,"$name = ".$db->quote($value)); array_push($results,"${name}_m = ".$db->quote(2)); } return $results; }; # Process a list of items function process_post_list($name,$option,$value) { global $db; $results = array(); # Inherit if ($option == 0) { array_push($results,"$name = NULL"); array_push($results,"${name}_m = ".$db->quote(0)); # Merge } elseif ($option == 1) { array_push($results,"$name = ".$db->quote($value)); array_push($results,"${name}_m = ".$db->quote(1)); # Override } elseif ($option == 2) { array_push($results,"$name = ".$db->quote($value)); array_push($results,"${name}_m = ".$db->quote(2)); } return $results; }; # Make a pretty db option function decode_db_option($option,$value) { $ret = "unknown"; if ($option == "0") { $ret = "Inherit"; # Overwrite } elseif ($option == "2") { # Check value if ($value == "0") { $ret = "No"; } elseif ($value == "1") { $ret = "Yes"; } } return $ret; } # Make a pretty db value function decode_db_value($option,$value) { $ret = "unknown"; if ($option == "0") { $ret = "Inherit"; # Merge } elseif ($option == "1") { $ret = "Merge: $value"; # Overwrite } elseif ($option == "2") { $ret = "Overwrite: $value"; } return $ret; } # Display change screen if ($_POST['frmaction'] == "change") { # Check a amavis rule was selected if (isset($_POST['amavis_id'])) { # Prepare statement $stmt = $db->prepare(" SELECT ${DB_TABLE_PREFIX}amavis_rules.ID, ${DB_TABLE_PREFIX}amavis_rules.PolicyID, ${DB_TABLE_PREFIX}amavis_rules.Name, ${DB_TABLE_PREFIX}amavis_rules.bypass_virus_checks, ${DB_TABLE_PREFIX}amavis_rules.bypass_virus_checks_m, ${DB_TABLE_PREFIX}amavis_rules.bypass_banned_checks, ${DB_TABLE_PREFIX}amavis_rules.bypass_banned_checks_m, ${DB_TABLE_PREFIX}amavis_rules.bypass_spam_checks, ${DB_TABLE_PREFIX}amavis_rules.bypass_spam_checks_m, ${DB_TABLE_PREFIX}amavis_rules.bypass_header_checks, ${DB_TABLE_PREFIX}amavis_rules.bypass_header_checks_m, ${DB_TABLE_PREFIX}amavis_rules.spam_tag_level, ${DB_TABLE_PREFIX}amavis_rules.spam_tag_level_m, ${DB_TABLE_PREFIX}amavis_rules.spam_tag2_level, ${DB_TABLE_PREFIX}amavis_rules.spam_tag2_level_m, ${DB_TABLE_PREFIX}amavis_rules.spam_tag3_level, ${DB_TABLE_PREFIX}amavis_rules.spam_tag3_level_m, ${DB_TABLE_PREFIX}amavis_rules.spam_kill_level, ${DB_TABLE_PREFIX}amavis_rules.spam_kill_level_m, ${DB_TABLE_PREFIX}amavis_rules.spam_dsn_cutoff_level, ${DB_TABLE_PREFIX}amavis_rules.spam_dsn_cutoff_level_m, ${DB_TABLE_PREFIX}amavis_rules.spam_quarantine_cutoff_level, ${DB_TABLE_PREFIX}amavis_rules.spam_quarantine_cutoff_level_m, ${DB_TABLE_PREFIX}amavis_rules.spam_modifies_subject, ${DB_TABLE_PREFIX}amavis_rules.spam_modifies_subject_m, ${DB_TABLE_PREFIX}amavis_rules.spam_tag_subject, ${DB_TABLE_PREFIX}amavis_rules.spam_tag_subject_m, ${DB_TABLE_PREFIX}amavis_rules.spam_tag2_subject, ${DB_TABLE_PREFIX}amavis_rules.spam_tag2_subject_m, ${DB_TABLE_PREFIX}amavis_rules.spam_tag3_subject, ${DB_TABLE_PREFIX}amavis_rules.spam_tag3_subject_m, ${DB_TABLE_PREFIX}amavis_rules.max_message_size, ${DB_TABLE_PREFIX}amavis_rules.max_message_size_m, ${DB_TABLE_PREFIX}amavis_rules.banned_files, ${DB_TABLE_PREFIX}amavis_rules.banned_files_m, ${DB_TABLE_PREFIX}amavis_rules.sender_whitelist, ${DB_TABLE_PREFIX}amavis_rules.sender_whitelist_m, ${DB_TABLE_PREFIX}amavis_rules.sender_blacklist, ${DB_TABLE_PREFIX}amavis_rules.sender_blacklist_m, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_newvirus, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_newvirus_m, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_virus, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_virus_m, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_spam, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_spam_m, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_banned_file, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_banned_file_m, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_bad_header, ${DB_TABLE_PREFIX}amavis_rules.notify_admin_bad_header_m, ${DB_TABLE_PREFIX}amavis_rules.quarantine_virus, ${DB_TABLE_PREFIX}amavis_rules.quarantine_virus_m, ${DB_TABLE_PREFIX}amavis_rules.quarantine_spam, ${DB_TABLE_PREFIX}amavis_rules.quarantine_spam_m, ${DB_TABLE_PREFIX}amavis_rules.quarantine_banned_file, ${DB_TABLE_PREFIX}amavis_rules.quarantine_banned_file_m, ${DB_TABLE_PREFIX}amavis_rules.quarantine_bad_header, ${DB_TABLE_PREFIX}amavis_rules.quarantine_bad_header_m, ${DB_TABLE_PREFIX}amavis_rules.bcc_to, ${DB_TABLE_PREFIX}amavis_rules.bcc_to_m, ${DB_TABLE_PREFIX}amavis_rules.Comment, ${DB_TABLE_PREFIX}amavis_rules.Disabled, ${DB_TABLE_PREFIX}policies.Name AS PolicyName FROM ${DB_TABLE_PREFIX}amavis_rules, ${DB_TABLE_PREFIX}policies WHERE ${DB_TABLE_PREFIX}amavis_rules.ID = ? AND ${DB_TABLE_PREFIX}policies.ID = ${DB_TABLE_PREFIX}amavis_rules.PolicyID "); ?>
Update Amavis Rule
Amavis Rule Update Results
quote($_POST['amavis_policyid'])); } if (!empty($_POST['amavis_name'])) { array_push($updates,"Name = ".$db->quote($_POST['amavis_name'])); } # Bypass options if (isset($_POST['amavis_bypass_virus_checks']) && $_POST['amavis_bypass_virus_checks'] != "") { $res = process_post_option('bypass_virus_checks',$_POST['amavis_bypass_virus_checks']); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_bypass_banned_checks']) && $_POST['amavis_bypass_banned_checks'] != "") { $res = process_post_option('bypass_banned_checks',$_POST['amavis_bypass_banned_checks']); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_bypass_spam_checks']) && $_POST['amavis_bypass_spam_checks'] != "") { $res = process_post_option('bypass_spam_checks',$_POST['amavis_bypass_spam_checks']); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_bypass_header_checks']) && $_POST['amavis_bypass_header_checks'] != "") { $res = process_post_option('bypass_header_checks',$_POST['amavis_bypass_header_checks']); $updates = array_merge($updates,$res); } # Antispam level if (isset($_POST['amavis_spam_tag_level_mode']) && $_POST['amavis_spam_tag_level_mode'] != "") { $res = process_post_value('spam_tag_level',$_POST['amavis_spam_tag_level_mode'], isset($_POST['amavis_spam_tag_level']) ? $_POST['amavis_spam_tag_level'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_tag2_level_mode']) && $_POST['amavis_spam_tag2_level_mode'] != "") { $res = process_post_value('spam_tag2_level',$_POST['amavis_spam_tag2_level_mode'], isset($_POST['amavis_spam_tag2_level']) ? $_POST['amavis_spam_tag2_level'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_tag3_level_mode']) && $_POST['amavis_spam_tag3_level_mode'] != "") { $res = process_post_value('spam_tag3_level',$_POST['amavis_spam_tag3_level_mode'], isset($_POST['amavis_spam_tag3_level']) ? $_POST['amavis_spam_tag3_level'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_kill_level_mode']) && $_POST['amavis_spam_kill_level_mode'] != "") { $res = process_post_value('spam_kill_level',$_POST['amavis_spam_kill_level_mode'], isset($_POST['amavis_spam_kill_level']) ? $_POST['amavis_spam_kill_level'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_dsn_cutoff_level_mode']) && $_POST['amavis_spam_dsn_cutoff_level_mode'] != "") { $res = process_post_value('spam_dsn_cutoff_level',$_POST['amavis_spam_dsn_cutoff_level_mode'], isset($_POST['amavis_spam_dsn_cutoff_level']) ? $_POST['amavis_spam_dsn_cutoff_level'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_quarantine_cutoff_level_mode']) && $_POST['amavis_spam_quarantine_cutoff_level_mode'] != "") { $res = process_post_value('spam_quarantine_cutoff_level',$_POST['amavis_spam_quarantine_cutoff_level_mode'], isset($_POST['amavis_spam_quarantine_cutoff_level']) ? $_POST['amavis_spam_quarantine_cutoff_level'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_modifies_subject']) && $_POST['amavis_spam_modifies_subject'] != "") { $res = process_post_option('spam_modifies_subject',$_POST['amavis_spam_modifies_subject']); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_tag_subject_mode']) && $_POST['amavis_spam_tag_subject_mode'] != "") { $res = process_post_value('spam_tag_subject',$_POST['amavis_spam_tag_subject_mode'], isset($_POST['amavis_spam_tag_subject']) ? $_POST['amavis_spam_tag_subject'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_tag2_subject_mode']) && $_POST['amavis_spam_tag2_subject_mode'] != "") { $res = process_post_value('spam_tag2_subject',$_POST['amavis_spam_tag2_subject_mode'], isset($_POST['amavis_spam_tag2_subject']) ? $_POST['amavis_spam_tag2_subject'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_spam_tag3_subject_mode']) && $_POST['amavis_spam_tag3_subject_mode'] != "") { $res = process_post_value('spam_tag3_subject',$_POST['amavis_spam_tag3_subject_mode'], isset($_POST['amavis_spam_tag3_subject']) ? $_POST['amavis_spam_tag3_subject'] : '' ); $updates = array_merge($updates,$res); } # General if (isset($_POST['amavis_max_message_size_mode']) && $_POST['amavis_max_message_size_mode'] != "") { $res = process_post_value('max_message_size',$_POST['amavis_max_message_size_mode'], isset($_POST['amavis_max_message_size']) ? $_POST['amavis_max_message_size'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_banned_files_mode']) && $_POST['amavis_banned_files_mode'] != "") { $res = process_post_list('banned_files',$_POST['amavis_banned_files_mode'], isset($_POST['amavis_banned_files']) ? $_POST['amavis_banned_files'] : '' ); $updates = array_merge($updates,$res); } # Whitelist & blacklist if (isset($_POST['amavis_sender_whitelist_mode']) && $_POST['amavis_sender_whitelist_mode'] != "") { $res = process_post_list('sender_whitelist',$_POST['amavis_sender_whitelist_mode'], isset($_POST['amavis_sender_whitelist']) ? $_POST['amavis_sender_whitelist'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_sender_blacklist_mode']) && $_POST['amavis_sender_blacklist_mode'] != "") { $res = process_post_list('sender_blacklist',$_POST['amavis_sender_blacklist_mode'], isset($_POST['amavis_sender_blacklist']) ? $_POST['amavis_sender_blacklist'] : '' ); $updates = array_merge($updates,$res); } # Notifications if (isset($_POST['amavis_notify_admin_newvirus_mode']) && $_POST['amavis_notify_admin_newvirus_mode'] != "") { $res = process_post_value('notify_admin_newvirus',$_POST['amavis_notify_admin_newvirus_mode'], isset($_POST['amavis_notify_admin_newvirus']) ? $_POST['amavis_notify_admin_newvirus'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_notify_admin_virus_mode']) && $_POST['amavis_notify_admin_virus_mode'] != "") { $res = process_post_value('notify_admin_virus',$_POST['amavis_notify_admin_virus_mode'], isset($_POST['amavis_notify_admin_virus']) ? $_POST['amavis_notify_admin_virus'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_notify_admin_spam_mode']) && $_POST['amavis_notify_admin_spam_mode'] != "") { $res = process_post_value('notify_admin_spam',$_POST['amavis_notify_admin_spam_mode'], isset($_POST['amavis_notify_admin_spam']) ? $_POST['amavis_notify_admin_spam'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_notify_admin_banned_file_mode']) && $_POST['amavis_notify_admin_banned_file_mode'] != "") { $res = process_post_value('notify_admin_banned_file',$_POST['amavis_notify_admin_banned_file_mode'], isset($_POST['amavis_notify_admin_banned_file']) ? $_POST['amavis_notify_admin_banned_file'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_notify_admin_bad_header_mode']) && $_POST['amavis_notify_admin_bad_header_mode'] != "") { $res = process_post_value('notify_admin_bad_header',$_POST['amavis_notify_admin_bad_header_mode'], isset($_POST['amavis_notify_admin_bad_header']) ? $_POST['amavis_notify_admin_bad_header'] : '' ); $updates = array_merge($updates,$res); } # Quarantine if (isset($_POST['amavis_quarantine_virus_mode']) && $_POST['amavis_quarantine_virus_mode'] != "") { $res = process_post_value('quarantine_virus',$_POST['amavis_quarantine_virus_mode'], isset($_POST['amavis_quarantine_virus']) ? $_POST['amavis_quarantine_virus'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_quarantine_spam_mode']) && $_POST['amavis_quarantine_spam_mode'] != "") { $res = process_post_value('quarantine_spam',$_POST['amavis_quarantine_spam_mode'], isset($_POST['amavis_quarantine_spam']) ? $_POST['amavis_quarantine_spam'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_quarantine_banned_file_mode']) && $_POST['amavis_quarantine_banned_file_mode'] != "") { $res = process_post_value('quarantine_banned_file',$_POST['amavis_quarantine_banned_file_mode'], isset($_POST['amavis_quarantine_banned_file']) ? $_POST['amavis_quarantine_banned_file'] : '' ); $updates = array_merge($updates,$res); } if (isset($_POST['amavis_quarantine_bad_header_mode']) && $_POST['amavis_quarantine_bad_header_mode'] != "") { $res = process_post_value('quarantine_bad_header',$_POST['amavis_quarantine_bad_header_mode'], isset($_POST['amavis_quarantine_bad_header']) ? $_POST['amavis_quarantine_bad_header'] : '' ); $updates = array_merge($updates,$res); } # Interception if (isset($_POST['amavis_bcc_to_mode']) && $_POST['amavis_bcc_to_mode'] != "") { $res = process_post_value('bcc_to',$_POST['amavis_bcc_to_mode'], isset($_POST['amavis_bcc_to']) ? $_POST['amavis_bcc_to'] : '' ); $updates = array_merge($updates,$res); } # Whatever is left over if (!empty($_POST['amavis_comment'])) { array_push($updates,"Comment = ".$db->quote($_POST['amavis_comment'])); } if (isset($_POST['amavis_disabled']) && $_POST['amavis_disabled'] != "") { array_push($updates ,"Disabled = ".$db->quote($_POST['amavis_disabled'])); } # Check if we have updates if (sizeof($updates) > 0) { $updateStr = implode(', ',$updates); $res = $db->exec("UPDATE ${DB_TABLE_PREFIX}amavis_rules SET $updateStr WHERE ID = ".$db->quote($_POST['amavis_id'])); if ($res) { ?>