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/status_captiveportal.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/status_captiveportal.php')
-rwxr-xr-x | usr/local/www/status_captiveportal.php | 125 |
1 files changed, 82 insertions, 43 deletions
diff --git a/usr/local/www/status_captiveportal.php b/usr/local/www/status_captiveportal.php index 41787f3..fac8145 100755 --- a/usr/local/www/status_captiveportal.php +++ b/usr/local/www/status_captiveportal.php @@ -45,28 +45,21 @@ require("filter.inc"); require("shaper.inc"); require("captiveportal.inc"); -if ($_GET['act'] == "del") { +$cpzone = $_GET['zone']; +if (isset($_POST['zone'])) + $cpzone = $_POST['zone']; + +if ($_GET['act'] == "del" && !empty($cpzone)) { captiveportal_disconnect_client($_GET['id']); - Header("Location: status_captiveportal.php"); + Header("Location: status_captiveportal.php?zone={$cpzone}"); exit; } -function clientcmp($a, $b) { - global $order; - return strcmp($a[$order], $b[$order]); -} - -$cpdb = array(); -if (file_exists("{$g['vardb_path']}/captiveportal.db")) { - $captiveportallck = lock('captiveportaldb'); - $cpcontents = file("/var/db/captiveportal.db", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - unlock($captiveportallck); -} else - $cpcontents = array(); +$pgtitle = array(gettext("Status: Captive portal")); -$concurrent = count($cpcontents); - -$pgtitle = array(gettext("Status: Captive portal ({$concurrent})")); +if (!is_array($config['captiveportal'])) + $config['captiveportal'] = array(); +$a_cp =& $config['captiveportal']; include("head.inc"); @@ -79,39 +72,56 @@ include("head.inc"); flush(); -foreach ($cpcontents as $cpcontent) { - $cpent = explode(",", $cpcontent); - $sessionid = $cpent[5]; - if ($_GET['showact']) - $cpent[5] = captiveportal_get_last_activity($cpent[2]); - $cpdb[$sessionid] = $cpent; +function clientcmp($a, $b) { + global $order; + return strcmp($a[$order], $b[$order]); } -if ($_GET['order']) { - if ($_GET['order'] == "ip") - $order = 2; - else if ($_GET['order'] == "mac") - $order = 3; - else if ($_GET['order'] == "user") - $order = 4; - else if ($_GET['order'] == "lastact") - $order = 5; - else - $order = 0; - usort($cpdb, "clientcmp"); + +if (!empty($cpzone)) { + $cpdb = array(); + if (file_exists("{$g['vardb_path']}/captiveportal_{$cpzone}.db")) { + $captiveportallck = lock('captiveportaldb{$cpzone}'); + $cpcontents = file("/var/db/captiveportal_{$cpzone}.db", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + unlock($captiveportallck); + } else + $cpcontents = array(); + + $concurrent = count($cpcontents); + + foreach ($cpcontents as $cpcontent) { + $cpent = explode(",", $cpcontent); + $sessionid = $cpent[5]; + if ($_GET['showact']) + $cpent[5] = captiveportal_get_last_activity($cpent[2]); + $cpdb[$sessionid] = $cpent; + } + if ($_GET['order']) { + if ($_GET['order'] == "ip") + $order = 2; + else if ($_GET['order'] == "mac") + $order = 3; + else if ($_GET['order'] == "user") + $order = 4; + else if ($_GET['order'] == "lastact") + $order = 5; + else + $order = 0; + usort($cpdb, "clientcmp"); + } } ?> -<?php if (isset($config['voucher']['enable'])): ?> +<?php if (!empty($cpzone) && isset($config['voucher'][$cpzone]['enable'])): ?> <form action="status_captiveportal.php" method="post" enctype="multipart/form-data" name="iform" id="iform"> <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="tab pane"> <tr><td class="tabnavtbl"> <?php $tab_array = array(); - $tab_array[] = array(gettext("Active Users"), true, "status_captiveportal.php"); - $tab_array[] = array(gettext("Active Vouchers"), false, "status_captiveportal_vouchers.php"); - $tab_array[] = array(gettext("Voucher Rolls"), false, "status_captiveportal_voucher_rolls.php"); - $tab_array[] = array(gettext("Test Vouchers"), false, "status_captiveportal_test.php"); + $tab_array[] = array(gettext("Active Users"), true, "status_captiveportal.php?zone={$cpzone}"); + $tab_array[] = array(gettext("Active Vouchers"), false, "status_captiveportal_vouchers.php?zone={$cpzone}"); + $tab_array[] = array(gettext("Voucher Rolls"), false, "status_captiveportal_voucher_rolls.php?zone={$cpzone}"); + $tab_array[] = array(gettext("Test Vouchers"), false, "status_captiveportal_test.php?zone={$cpzone}"); display_top_tabs($tab_array); ?> </td></tr> @@ -121,6 +131,32 @@ if ($_GET['order']) { <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> + <td width="20%" class="vncell" valign="top"> + <br/><?=gettext("Captive Portal Zone"); ?><br/<br/> + </td> + <td "class="vncell" width="30%" align="center"> + <form action="status_captiveportal.php" method="post" enctype="multipart/form-data" name="form1" id="form1"> + <select name="zone" class="formselect" onchange="document.form1.submit()"> + echo "<option value="">none</option>\n"; + <?php foreach ($a_cp as $cpkey => $cp) { + echo "<option value='{$cpkey}' "; + if ($cpzone == $cpkey) + echo "selected"; + echo ">" . htmlspecialchars($cp['zone']) . "</option>\n"; + } + ?> + </select> + <br/> + </form> + </td> + <td colspan="3" width="50%"></td> + </tr> + <tr><td colspan="5"><br/></tr> +<?php if (!empty($cpzone)): ?> + <tr> + <td colspan="5" valign="top" class="listtopic"><?=gettext("Captiveportal status");?></td> + </tr> + <tr> <td class="listhdrr"><a href="?order=ip&showact=<?=htmlspecialchars($_GET['showact']);?>"><?=gettext("IP address");?></a></td> <td class="listhdrr"><a href="?order=mac&showact=<?=htmlspecialchars($_GET['showact']);?>"><?=gettext("MAC address");?></a></td> <td class="listhdrr"><a href="?order=user&showact=<?=htmlspecialchars($_GET['showact']);?>"><?=gettext("Username");?></a></td> @@ -142,12 +178,12 @@ if ($_GET['order']) { <td class="listr"><?php if ($cpent[5]) echo htmlspecialchars(date("m/d/Y H:i:s", $cpent[5]));?></td> <?php endif; ?> <td valign="middle" class="list" nowrap> - <a href="?order=<?=$_GET['order'];?>&showact=<?=htmlspecialchars($_GET['showact']);?>&act=del&id=<?=$sid;?>" onclick="return confirm('<?=gettext("Do you really want to disconnect this client?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("Disconnect");?>"></a></td> + <a href="?zone=<?=$cpzone;?>&order=<?=$_GET['order'];?>&showact=<?=htmlspecialchars($_GET['showact']);?>&act=del&id=<?=$sid;?>" onclick="return confirm('<?=gettext("Do you really want to disconnect this client?");?>')"><img src="./themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" title="<?=gettext("Disconnect");?>"></a></td> </tr> -<?php endforeach; ?> +<?php endforeach; endif; ?> </table> -<?php if (isset($config['voucher']['enable'])): ?> +<?php if (!empty($cpzone) && isset($config['voucher'][$cpzone]['enable'])): ?> </td> </tr> </table> @@ -156,6 +192,7 @@ if ($_GET['order']) { <form action="status_captiveportal.php" method="get" style="margin: 14px;"> <input type="hidden" name="order" value="<?=$_GET['order'];?>" /> +<?php if (!empty($cpzone)): ?> <?php if ($_GET['showact']): ?> <input type="hidden" name="showact" value="0" /> <input type="submit" class="formbtn" value="<?=gettext("Don't show last activity");?>" /> @@ -163,6 +200,8 @@ if ($_GET['order']) { <input type="hidden" name="showact" value="1" /> <input type="submit" class="formbtn" value="<?=gettext("Show last activity");?>" /> <?php endif; ?> +<input type="hidden" name="zone" value="<?=$cpzone;?>" /> +<?php endif; ?> </form> <?php include("fend.inc"); ?> |