diff options
author | Ermal <eri@pfsense.org> | 2011-09-07 06:42:58 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2011-09-07 13:04:01 +0000 |
commit | b4792bf8fe3b1cef416c7135fea88c1a0b08800a (patch) | |
tree | d32a5fb188939e28cd42c92aa9b4cf6729ff4947 /usr/local/www/services_captiveportal_mac.php | |
parent | 9b55203f878786a2bbd0b7d5dda4474d2533695b (diff) | |
download | pfsense-b4792bf8fe3b1cef416c7135fea88c1a0b08800a.zip pfsense-b4792bf8fe3b1cef416c7135fea88c1a0b08800a.tar.gz |
Add the multi instance CP to master branch. This allows to define CP with different properties on different interfaces.
Diffstat (limited to 'usr/local/www/services_captiveportal_mac.php')
-rwxr-xr-x | usr/local/www/services_captiveportal_mac.php | 58 |
1 files changed, 39 insertions, 19 deletions
diff --git a/usr/local/www/services_captiveportal_mac.php b/usr/local/www/services_captiveportal_mac.php index f42ac80..83f88a2 100755 --- a/usr/local/www/services_captiveportal_mac.php +++ b/usr/local/www/services_captiveportal_mac.php @@ -47,13 +47,20 @@ require("filter.inc"); require("shaper.inc"); require("captiveportal.inc"); -$pgtitle = array(gettext("Services"),gettext("Captive portal")); +$cpzone = $_GET['zone']; +if (isset($_POST['zone'])) + $cpzone = $_POST['zone']; -if (!is_array($config['captiveportal']['passthrumac'])) - $config['captiveportal']['passthrumac'] = array(); +if (empty($cpzone)) { + header("Location: services_captiveportal_zones.php"); + exit; +} -$a_passthrumacs = &$config['captiveportal']['passthrumac'] ; +if (!is_array($config['captiveportal'])) + $config['captiveportal'] = array(); +$a_cp =& $config['captiveportal']; +$pgtitle = array(gettext("Services"),gettext("Captive portal"), $a_cp[$cpzone]['zone']); if ($_POST) { @@ -73,6 +80,14 @@ if ($_POST) { echo gettext("No entry exists yet!") ."\n"; exit; } + if (empty($_POST['zone'])) { + echo gettext("Please set the zone on which the operation should be allowed"); + exit; + } + if (!is_array($a_cp[$cpzone]['passthrumac'])) + $a_cp[$cpzone]['passthrumac'] = array(); + $a_passthrumacs =& $a_cp[$cpzone]['passthrumac']; + if ($_POST['username']) { $mac = captiveportal_passthrumac_findbyname($_POST['username']); if (!empty($mac)) @@ -92,6 +107,7 @@ if ($_POST) { $ruleno = captiveportal_get_ipfw_passthru_ruleno($_POST['delmac']); if ($ruleno) { captiveportal_free_ipfw_ruleno($ruleno, true); + captiveportal_ipfw_set_context($cpzone); mwexec("/sbin/ipfw delete {$ruleno}; /sbin/ipfw delete " . ++$ruleno); } unset($a_passthrumacs[$idx]); @@ -105,15 +121,17 @@ if ($_POST) { } if ($_GET['act'] == "del") { + $a_passthrumacs =& $a_cp[$cpzone]; if ($a_passthrumacs[$_GET['id']]) { $ruleno = captiveportal_get_ipfw_passthru_ruleno($a_passthrumacs[$_GET['id']]['mac']); if ($ruleno) { + captiveportal_ipfw_set_context($cpzone); captiveportal_free_ipfw_ruleno($ruleno); mwexec("/sbin/ipfw delete {$ruleno}; /sbin/ipfw delete " . ++$ruleno); } unset($a_passthrumacs[$_GET['id']]); write_config(); - header("Location: services_captiveportal_mac.php"); + header("Location: services_captiveportal_mac.php?zone={$cpzone}"); exit; } } @@ -124,6 +142,7 @@ include("head.inc"); <?php include("fbegin.inc"); ?> <body link="#0000CC" vlink="#0000CC" alink="#0000CC"> <form action="services_captiveportal_mac.php" method="post"> +<input type="hidden" name="zone" id="zone" value="<?=$cpzone;?>"/> <?php if ($savemsg) print_info_box($savemsg); ?> <?php if (is_subsystem_dirty('passthrumac')): ?><p> <?php print_info_box_np(gettext("The captive portal MAC address configuration has been changed.<br>You must apply the changes in order for them to take effect."));?><br> @@ -132,12 +151,12 @@ include("head.inc"); <tr><td class="tabnavtbl"> <?php $tab_array = array(); - $tab_array[] = array(gettext("Captive portal"), false, "services_captiveportal.php"); - $tab_array[] = array(gettext("Pass-through MAC"), true, "services_captiveportal_mac.php"); - $tab_array[] = array(gettext("Allowed IP addresses"), false, "services_captiveportal_ip.php"); - $tab_array[] = array(gettext("Allowed Hostnames"), false, "services_captiveportal_hostname.php"); - $tab_array[] = array(gettext("Vouchers"), false, "services_captiveportal_vouchers.php"); - $tab_array[] = array(gettext("File Manager"), false, "services_captiveportal_filemanager.php"); + $tab_array[] = array(gettext("Captive portal"), false, "services_captiveportal.php?zone={$cpzone}"); + $tab_array[] = array(gettext("Pass-through MAC"), true, "services_captiveportal_mac.php?zone={$cpzone}"); + $tab_array[] = array(gettext("Allowed IP addresses"), false, "services_captiveportal_ip.php?zone={$cpzone}"); + $tab_array[] = array(gettext("Allowed Hostnames"), false, "services_captiveportal_hostname.php?zone={$cpzone}"); + $tab_array[] = array(gettext("Vouchers"), false, "services_captiveportal_vouchers.php?zone={$cpzone}"); + $tab_array[] = array(gettext("File Manager"), false, "services_captiveportal_filemanager.php?zone={$cpzone}"); display_top_tabs($tab_array, true); ?> </td></tr> @@ -145,25 +164,26 @@ include("head.inc"); <td class="tabcont"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> - <td width="30%" class="listhdrr"><?=gettext("MAC address"); ?></td> - <td width="60%" class="listhdr"><?=gettext("Description"); ?></td> + <td width="40%" class="listhdrr"><?=gettext("MAC address"); ?></td> + <td width="50%" class="listhdr"><?=gettext("Description"); ?></td> <td width="10%" class="list"></td> </tr> - <?php $i = 0; foreach ($a_passthrumacs as $mac): ?> - <tr ondblclick="document.location='services_captiveportal_mac_edit.php?id=<?=$i;?>'"> +<?php if (is_array($a_cp[$cpzone]['passthrumac'])): + $i = 0; foreach ($a_cp[$cpzone]['passthrumac'] as $mac): ?> + <tr ondblclick="document.location='services_captiveportal_mac_edit.php?zone=<?=$cpzone;?>&id=<?=$i;?>'"> <td class="listlr"> <?=strtolower($mac['mac']);?> </td> <td class="listbg"> <?=htmlspecialchars($mac['descr']);?> </td> - <td valign="middle" nowrap class="list"> <a href="services_captiveportal_mac_edit.php?id=<?=$i;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit host"); ?>" width="17" height="17" border="0"></a> - <a href="services_captiveportal_mac.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this host?"); ?>')"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete host"); ?>" width="17" height="17" border="0"></a></td> + <td valign="middle" nowrap class="list"> <a href="services_captiveportal_mac_edit.php?zone=<?=$cpzone;?>&id=<?=$i;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit host"); ?>" width="17" height="17" border="0"></a> + <a href="services_captiveportal_mac.php?zone=<?=$cpzone;?>&act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this host?"); ?>')"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete host"); ?>" width="17" height="17" border="0"></a></td> </tr> - <?php $i++; endforeach; ?> + <?php $i++; endforeach; endif; ?> <tr> <td class="list" colspan="2"> </td> - <td class="list"> <a href="services_captiveportal_mac_edit.php"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add host"); ?>" width="17" height="17" border="0"></a></td> + <td class="list"> <a href="services_captiveportal_mac_edit.php?zone=<?=$cpzone;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add host"); ?>" width="17" height="17" border="0"></a></td> </tr> <tr> <td colspan="2" class="list"><span class="vexpl"><span class="red"><strong> |