mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
Add gateway groups edit page.
This commit is contained in:
parent
da669e7fb1
commit
5ccd98577a
@ -35,6 +35,7 @@ if (!is_array($config['gateways']['gateway_group']))
|
||||
$config['gateways']['gateway_group'] = array();
|
||||
|
||||
$a_gateway_groups = &$config['gateways']['gateway_group'];
|
||||
$a_gateways = &$config['gateways']['gateway_item'];
|
||||
$changedesc = "Gateway Groups: ";
|
||||
|
||||
if ($_POST) {
|
||||
@ -77,7 +78,7 @@ include("head.inc");
|
||||
|
||||
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
|
||||
<?php include("fbegin.inc"); ?>
|
||||
<form action="system_gateways.php" method="post">
|
||||
<form action="system_gateway_groups.php" method="post">
|
||||
<input type="hidden" name="y1" value="1">
|
||||
<?php if ($savemsg) print_info_box($savemsg); ?>
|
||||
<?php if (file_exists($d_staticroutesdirty_path)): ?><p>
|
||||
@ -123,12 +124,19 @@ effect.");?><br>
|
||||
</td>
|
||||
<td class="listr" ondblclick="document.location='system_gateway_groups_edit.php?id=<?=$i;?>';">
|
||||
<?php
|
||||
echo htmlspecialchars($gateway_group['members']); ?>
|
||||
foreach($gateway_group['item'] as $item) {
|
||||
$itemsplit = explode("|", $item);
|
||||
echo htmlspecialchars($itemsplit[0]) . "<br/>\n";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td class="listr" ondblclick="document.location='system_gateway_groups_edit.php?id=<?=$i;?>';">
|
||||
<?php
|
||||
echo htmlspecialchars($gateway_group['priorities']); ?>
|
||||
?>
|
||||
foreach($gateway_group['item'] as $item) {
|
||||
$itemsplit = explode("|", $item);
|
||||
echo "Tier ". htmlspecialchars($itemsplit[1]) . "<br/>\n";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td class="listbg" ondblclick="document.location='system_gateway_groups_edit.php?id=<?=$i;?>';">
|
||||
<font color="#FFFFFF"><?=htmlspecialchars($gateway_group['descr']);?>
|
||||
|
||||
192
usr/local/www/system_gateway_groups_edit.php
Executable file
192
usr/local/www/system_gateway_groups_edit.php
Executable file
@ -0,0 +1,192 @@
|
||||
<?php
|
||||
/* $Id$ */
|
||||
/*
|
||||
system_gateway_groups_edit.php
|
||||
part of pfSense (http://pfsense.com)
|
||||
|
||||
Copyright (C) 2007 Seth Mos <seth.mos@xs4all.nl>.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
require("guiconfig.inc");
|
||||
|
||||
if (!is_array($config['gateways']['gateway_item']))
|
||||
$config['gateways']['gateway_item'] = array();
|
||||
|
||||
$a_gateway_groups = &$config['gateways']['gateway_group'];
|
||||
$a_gateways = &$config['gateways']['gateway_item'];
|
||||
|
||||
$id = $_GET['id'];
|
||||
if (isset($_POST['id']))
|
||||
$id = $_POST['id'];
|
||||
|
||||
if (isset($_GET['dup'])) {
|
||||
$id = $_GET['dup'];
|
||||
}
|
||||
|
||||
if (isset($id) && $a_gateway_groups[$id]) {
|
||||
$pconfig['name'] = $a_gateway_groups[$id]['name'];
|
||||
$pconfig['item'] = &$a_gateway_groups[$id]['item'];
|
||||
$pconfig['descr'] = $a_gateway_groups[$id]['descr'];
|
||||
}
|
||||
|
||||
if (isset($_GET['dup']))
|
||||
unset($id);
|
||||
|
||||
if ($_POST) {
|
||||
|
||||
unset($input_errors);
|
||||
$pconfig = $_POST;
|
||||
|
||||
/* input validation */
|
||||
$reqdfields = explode(" ", "name");
|
||||
$reqdfieldsn = explode(",", "Name");
|
||||
|
||||
do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
|
||||
|
||||
if (! isset($_POST['name'])) {
|
||||
$input_errors[] = "A valid gateway group name must be specified.";
|
||||
}
|
||||
|
||||
/* check for overlaps */
|
||||
foreach ($a_gateway_groups as $gateway_group) {
|
||||
if (isset($id) && ($a_gateway_groups[$id]) && ($a_gateway_groups[$id] === $gateway_group))
|
||||
continue;
|
||||
|
||||
if ($gateway_group['name'] == $_POST['name']) {
|
||||
$input_errors[] = "A gateway group with this name \"{$_POST['name']}\" already exists.";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Build list of items in group with priority */
|
||||
$pconfig['item'] = array();
|
||||
foreach($a_gateways as $gateway) {
|
||||
if($_POST[$gateway['name']] > 0) {
|
||||
/* we have a priority above 0 (disabled), add item to list */
|
||||
$pconfig['item'][] = "{$gateway[name]}|{$_POST[$gateway['name']]}";
|
||||
}
|
||||
|
||||
}
|
||||
if(count($pconfig['item']) == 0) {
|
||||
$input_errors[] = "No gateway(s) have been selected to be used in this group";
|
||||
}
|
||||
|
||||
if (!$input_errors) {
|
||||
$gateway_group = array();
|
||||
$gateway_group['name'] = $_POST['name'];
|
||||
$gateway_group['item'] = $pconfig['item'];
|
||||
$gateway_group['descr'] = $_POST['descr'];
|
||||
|
||||
if (isset($id) && $a_gateway_groups[$id])
|
||||
$a_gateway_groups[$id] = $gateway_group;
|
||||
else
|
||||
$a_gateway_groups[] = $gateway_group;
|
||||
|
||||
touch($d_staticroutesdirty_path);
|
||||
|
||||
write_config();
|
||||
|
||||
header("Location: system_gateway_groups.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$pgtitle = array("System","Gateways","Edit gateway");
|
||||
include("head.inc");
|
||||
|
||||
?>
|
||||
|
||||
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
|
||||
<?php include("fbegin.inc"); ?>
|
||||
<?php if ($input_errors) print_input_errors($input_errors); ?>
|
||||
<form action="system_gateway_groups_edit.php" method="post" name="iform" id="iform">
|
||||
<table width="100%" border="0" cellpadding="6" cellspacing="0">
|
||||
<tr>
|
||||
<td width="22%" valign="top" class="vncellreq">Group Name</td>
|
||||
<td width="78%" class="vtable">
|
||||
<input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>">
|
||||
<br> <span class="vexpl">Group Name</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="22%" valign="top" class="vncellreq">Gateway Priority</td>
|
||||
<td width="78%" class="vtable">
|
||||
<?php
|
||||
foreach($a_gateways as $gateway) {
|
||||
$selected = array();
|
||||
$name = $gateway['name'];
|
||||
$interface = $gateway['interface'];
|
||||
foreach($pconfig['item'] as $item) {
|
||||
$itemsplit = explode("|", $item);
|
||||
if($itemsplit[0] == $name) {
|
||||
$selected[$itemsplit[1]] = "selected";
|
||||
} else {
|
||||
$selected[0] = "selected";
|
||||
}
|
||||
|
||||
}
|
||||
echo "<select name='{$name}' class='formfldselect' id='{$name}'>";
|
||||
echo "<option value='0' $selected[0] >Never</option>";
|
||||
echo "<option value='1' $selected[1] >Tier 1</option>";
|
||||
echo "<option value='2' $selected[2] >Tier 2</option>";
|
||||
echo "<option value='3' $selected[3]>Tier 3</option>";
|
||||
echo "<option value='4' $selected[4]>Tier 4</option>";
|
||||
echo "<option value='5' $selected[5]>Tier 5</option>";
|
||||
echo "</select> <strong>$name ({$interface})</strong><br/>";
|
||||
}
|
||||
?>
|
||||
<br/><span class="vexpl">
|
||||
<strong>Link Priority</strong> <br />
|
||||
The priority selected here defines in what order failover and balancing of links will be done.
|
||||
Multiple links of the same priority will balance connections until all links in the priority will be exhausted.
|
||||
If all links in a priority level are exhausted we will use the next available link(s) in the next priority level.
|
||||
</span><br />
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="22%" valign="top" class="vncell">Description</td>
|
||||
<td width="78%" class="vtable">
|
||||
<input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
|
||||
<br> <span class="vexpl">You may enter a description here
|
||||
for your reference (not parsed).</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="22%" valign="top"> </td>
|
||||
<td width="78%">
|
||||
<input name="Submit" type="submit" class="formbtn" value="Save"> <input type="button" value="Cancel" class="formbtn" onclick="history.back()">
|
||||
<?php if (isset($id) && $a_gateways[$id]): ?>
|
||||
<input name="id" type="hidden" value="<?=$id;?>">
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<?php include("fend.inc"); ?>
|
||||
<script language="JavaScript">
|
||||
enable_change();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue
Block a user