summaryrefslogtreecommitdiffstats
path: root/usr/local/www/status_captiveportal.php
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-09-07 06:42:58 +0000
committerErmal <eri@pfsense.org>2011-09-07 13:04:01 +0000
commitb4792bf8fe3b1cef416c7135fea88c1a0b08800a (patch)
treed32a5fb188939e28cd42c92aa9b4cf6729ff4947 /usr/local/www/status_captiveportal.php
parent9b55203f878786a2bbd0b7d5dda4474d2533695b (diff)
downloadpfsense-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-xusr/local/www/status_captiveportal.php125
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&amp;showact=<?=htmlspecialchars($_GET['showact']);?>"><?=gettext("IP address");?></a></td>
<td class="listhdrr"><a href="?order=mac&amp;showact=<?=htmlspecialchars($_GET['showact']);?>"><?=gettext("MAC address");?></a></td>
<td class="listhdrr"><a href="?order=user&amp;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"); ?>
OpenPOWER on IntegriCloud