diff --git a/src/www/firewall_aliases.php b/src/www/firewall_aliases.php index 47f3f96bf..1309e3d15 100644 --- a/src/www/firewall_aliases.php +++ b/src/www/firewall_aliases.php @@ -32,46 +32,46 @@ require_once("guiconfig.inc"); require_once("filter.inc"); function find_alias_reference($section, $field, $origname, &$is_alias_referenced, &$referenced_by) { - global $config; - if(!$origname || $is_alias_referenced) - return; + global $config; + if(!$origname || $is_alias_referenced) + return; - $sectionref = &$config; - foreach($section as $sectionname) { - if(is_array($sectionref) && isset($sectionref[$sectionname])) - $sectionref = &$sectionref[$sectionname]; - else - return; - } + $sectionref = &$config; + foreach($section as $sectionname) { + if(is_array($sectionref) && isset($sectionref[$sectionname])) + $sectionref = &$sectionref[$sectionname]; + else + return; + } - if(is_array($sectionref)) { - foreach($sectionref as $itemkey => $item) { - $fieldfound = true; - $fieldref = &$sectionref[$itemkey]; - foreach($field as $fieldname) { - if(is_array($fieldref) && isset($fieldref[$fieldname])) - $fieldref = &$fieldref[$fieldname]; - else { - $fieldfound = false; - break; + if(is_array($sectionref)) { + foreach($sectionref as $itemkey => $item) { + $fieldfound = true; + $fieldref = &$sectionref[$itemkey]; + foreach($field as $fieldname) { + if(is_array($fieldref) && isset($fieldref[$fieldname])) + $fieldref = &$fieldref[$fieldname]; + else { + $fieldfound = false; + break; + } + } + if($fieldfound && $fieldref == $origname) { + $is_alias_referenced = true; + if(is_array($item)) + $referenced_by = $item['descr']; + break; } } - if($fieldfound && $fieldref == $origname) { - $is_alias_referenced = true; - if(is_array($item)) - $referenced_by = $item['descr']; - break; - } } - } } if (!isset($config['aliases'])) { - $config['aliases'] = array(); + $config['aliases'] = array(); } if (!isset($config['aliases']['alias'])) { - $config['aliases']['alias'] = array(); + $config['aliases']['alias'] = array(); } $a_aliases = &$config['aliases']['alias']; @@ -79,60 +79,60 @@ $a_aliases = &$config['aliases']['alias']; $selected_tab = htmlspecialchars(($_REQUEST['tab'] == "" ? "ip" : preg_replace("/\W/","",$_REQUEST['tab']))); if ($_SERVER['REQUEST_METHOD'] === 'POST') { - if (isset($_POST['apply'])) { - /* reload all components that use aliases */ - filter_configure(); - $savemsg = get_std_save_message(); - clear_subsystem_dirty('aliases'); - } elseif (isset($_POST['act']) && $_POST['act'] == "del") { - if (isset($_POST['id']) && isset($a_aliases[$_POST['id']])) { - // perform validation - /* make sure rule is not being referenced by any nat or filter rules */ - $is_alias_referenced = false; - $referenced_by = false; - $alias_name = $a_aliases[$_POST['id']]['name']; - // Firewall rules - find_alias_reference(array('filter', 'rule'), array('source', 'address'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('filter', 'rule'), array('destination', 'address'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('filter', 'rule'), array('source', 'port'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('filter', 'rule'), array('destination', 'port'), $alias_name, $is_alias_referenced, $referenced_by); - // NAT Rules - find_alias_reference(array('nat', 'rule'), array('source', 'address'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'rule'), array('source', 'port'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'rule'), array('destination', 'address'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'rule'), array('destination', 'port'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'rule'), array('target'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'rule'), array('local-port'), $alias_name, $is_alias_referenced, $referenced_by); - // NAT 1:1 Rules - //find_alias_reference(array('nat', 'onetoone'), array('external'), $alias_name, $is_alias_referenced, $referenced_by); - //find_alias_reference(array('nat', 'onetoone'), array('source', 'address'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'onetoone'), array('destination', 'address'), $alias_name, $is_alias_referenced, $referenced_by); - // NAT Outbound Rules - find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('source', 'network'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('sourceport'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('destination', 'address'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('dstport'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('target'), $alias_name, $is_alias_referenced, $referenced_by); - // Alias in an alias - find_alias_reference(array('aliases', 'alias'), array('address'), $alias_name, $is_alias_referenced, $referenced_by); - // Load Balancer - find_alias_reference(array('load_balancer', 'lbpool'), array('port'), $alias_name, $is_alias_referenced, $referenced_by); - find_alias_reference(array('load_balancer', 'virtual_server'), array('port'), $alias_name, $is_alias_referenced, $referenced_by); - // Static routes - find_alias_reference(array('staticroutes', 'route'), array('network'), $alias_name, $is_alias_referenced, $referenced_by); - if($is_alias_referenced) { - $savemsg = sprintf(gettext("Cannot delete alias. Currently in use by %s"), $referenced_by); - } else { - unset($a_aliases[$_POST['id']]); - if (write_config()) { + if (isset($_POST['apply'])) { + /* reload all components that use aliases */ filter_configure(); - mark_subsystem_dirty('aliases'); - } - header("Location: firewall_aliases.php?tab=" . $selected_tab); - exit; + $savemsg = get_std_save_message(); + clear_subsystem_dirty('aliases'); + } elseif (isset($_POST['act']) && $_POST['act'] == "del") { + if (isset($_POST['id']) && isset($a_aliases[$_POST['id']])) { + // perform validation + /* make sure rule is not being referenced by any nat or filter rules */ + $is_alias_referenced = false; + $referenced_by = false; + $alias_name = $a_aliases[$_POST['id']]['name']; + // Firewall rules + find_alias_reference(array('filter', 'rule'), array('source', 'address'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('filter', 'rule'), array('destination', 'address'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('filter', 'rule'), array('source', 'port'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('filter', 'rule'), array('destination', 'port'), $alias_name, $is_alias_referenced, $referenced_by); + // NAT Rules + find_alias_reference(array('nat', 'rule'), array('source', 'address'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'rule'), array('source', 'port'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'rule'), array('destination', 'address'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'rule'), array('destination', 'port'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'rule'), array('target'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'rule'), array('local-port'), $alias_name, $is_alias_referenced, $referenced_by); + // NAT 1:1 Rules + //find_alias_reference(array('nat', 'onetoone'), array('external'), $alias_name, $is_alias_referenced, $referenced_by); + //find_alias_reference(array('nat', 'onetoone'), array('source', 'address'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'onetoone'), array('destination', 'address'), $alias_name, $is_alias_referenced, $referenced_by); + // NAT Outbound Rules + find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('source', 'network'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('sourceport'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('destination', 'address'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('dstport'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('nat', 'advancedoutbound', 'rule'), array('target'), $alias_name, $is_alias_referenced, $referenced_by); + // Alias in an alias + find_alias_reference(array('aliases', 'alias'), array('address'), $alias_name, $is_alias_referenced, $referenced_by); + // Load Balancer + find_alias_reference(array('load_balancer', 'lbpool'), array('port'), $alias_name, $is_alias_referenced, $referenced_by); + find_alias_reference(array('load_balancer', 'virtual_server'), array('port'), $alias_name, $is_alias_referenced, $referenced_by); + // Static routes + find_alias_reference(array('staticroutes', 'route'), array('network'), $alias_name, $is_alias_referenced, $referenced_by); + if($is_alias_referenced) { + $savemsg = sprintf(gettext("Cannot delete alias. Currently in use by %s"), $referenced_by); + } else { + unset($a_aliases[$_POST['id']]); + if (write_config()) { + filter_configure(); + mark_subsystem_dirty('aliases'); + } + header("Location: firewall_aliases.php?tab=" . $selected_tab); + exit; + } + } } - } - } } @@ -157,16 +157,16 @@ $( document ).ready(function() { title: "", message: "", buttons: [{ - label: "", - action: function(dialogRef) { - dialogRef.close(); - }}, { + label: "", + action: function(dialogRef) { + dialogRef.close(); + }}, { label: "", action: function(dialogRef) { $("#delId").val(id); $("#iform").submit() } - }] + }] }); }); }); @@ -189,12 +189,12 @@ $( document ).ready(function() { display_top_tabs($tab_array); ?>
-
- + + -
- +
+
@@ -246,33 +246,33 @@ $( document ).ready(function() { } } ?> - -
- + + - " class="btn btn-default btn-xs"> - " class="act_delete btn btn-default btn-xs"> + " class="btn btn-default btn-xs"> + " class="act_delete btn btn-default btn-xs">
-
- -
-
- - -
- + +
+ +
+
+ + +
+
- +
- +