Commit 49e65b7a authored by Franco Fichtner's avatar Franco Fichtner

src: going down in style test drive

This applies most of PSR2 to the login page, dashboard and widgets.
We do this in order to find out whether the style apply is consistent
and free of errors.  Let's see, shall we?  :)
parent 9ebe2b77
......@@ -34,8 +34,8 @@ include_once("priv.inc");
/* Authenticate user - exit if failed */
if (!session_auth()) {
display_login_form();
exit;
display_login_form();
exit;
}
/*
......@@ -49,25 +49,25 @@ $allowedpages = getAllowedPages($_SESSION['Username']);
* redirect to first allowed page if requesting a wrong url
*/
if (!isAllowedPage($_SERVER['REQUEST_URI'])) {
if (count($allowedpages) > 0) {
$page = str_replace('*', '', $allowedpages[0]);
$_SESSION['Post_Login'] = true;
require_once("functions.inc");
redirectHeader("/{$page}");
$username = empty($_SESSION["Username"]) ? "(system)" : $_SESSION['Username'];
if (!empty($_SERVER['REMOTE_ADDR'])) {
$username .= '@' . $_SERVER['REMOTE_ADDR'];
}
log_error("{$username} attempted to access {$_SERVER['REQUEST_URI']} but does not have access to that page. Redirecting to {$page}.");
exit;
} else {
display_error_form("201", gettext("No page assigned to this user! Click here to logout."));
exit;
}
if (count($allowedpages) > 0) {
$page = str_replace('*', '', $allowedpages[0]);
$_SESSION['Post_Login'] = true;
require_once("functions.inc");
redirectHeader("/{$page}");
$username = empty($_SESSION["Username"]) ? "(system)" : $_SESSION['Username'];
if (!empty($_SERVER['REMOTE_ADDR'])) {
$username .= '@' . $_SERVER['REMOTE_ADDR'];
}
log_error("{$username} attempted to access {$_SERVER['REQUEST_URI']} but does not have access to that page. Redirecting to {$page}.");
exit;
} else {
display_error_form("201", gettext("No page assigned to this user! Click here to logout."));
exit;
}
} else {
$_SESSION['Post_Login'] = true;
$_SESSION['Post_Login'] = true;
}
/*
......@@ -75,10 +75,10 @@ if (!isAllowedPage($_SERVER['REQUEST_URI'])) {
* taking action in reponse to a POST request
*/
if (!$_SESSION['Post_Login']) {
$_SESSION['Post_Login'] = true;
require_once("functions.inc");
redirectHeader($_SERVER['REQUEST_URI']);
exit;
$_SESSION['Post_Login'] = true;
require_once("functions.inc");
redirectHeader($_SERVER['REQUEST_URI']);
exit;
}
/*
......@@ -92,12 +92,12 @@ session_write_close();
*/
function display_error_form($http_code, $desc)
{
global $config, $g;
$g['theme'] = get_current_theme();
if(isAjax()) {
printf(gettext('Error: %1$s Description: %2$s'), $http_code, $desc);
return;
}
global $config, $g;
$g['theme'] = get_current_theme();
if (isAjax()) {
printf(gettext('Error: %1$s Description: %2$s'), $http_code, $desc);
return;
}
?><!doctype html>
<!--[if IE 8 ]><html lang="en" class="ie ie8 lte9 lte8 no-js"><![endif]-->
......@@ -138,73 +138,76 @@ function display_error_form($http_code, $desc)
function display_login_form()
{
require_once("globals.inc");
global $config, $g;
$g['theme'] = get_current_theme();
unset($input_errors);
if(isAjax()) {
if (isset($_POST['login'])) {
if($_SESSION['Logged_In'] <> "True") {
isset($_SESSION['Login_Error']) ? $login_error = $_SESSION['Login_Error'] : $login_error = gettext("unknown reason");
printf("showajaxmessage('" . gettext("Invalid login (%s).") . "')", $login_error);
}
if (file_exists('/tmp/webconfigurator.lock')) {
// TODO: add the IP from the user who did lock the device
$whom = file_get_contents('/tmp/webconfigurator.lock');
printf("showajaxmessage('" . gettext("This device is currently being maintained by: %s.") . "');", $whom);
}
}
exit;
}
/* Check against locally configured IP addresses, which will catch when someone
require_once("globals.inc");
global $config, $g;
$g['theme'] = get_current_theme();
unset($input_errors);
if (isAjax()) {
if (isset($_POST['login'])) {
if ($_SESSION['Logged_In'] <> "True") {
isset($_SESSION['Login_Error']) ? $login_error = $_SESSION['Login_Error'] : $login_error = gettext("unknown reason");
printf("showajaxmessage('" . gettext("Invalid login (%s).") . "')", $login_error);
}
if (file_exists('/tmp/webconfigurator.lock')) {
// TODO: add the IP from the user who did lock the device
$whom = file_get_contents('/tmp/webconfigurator.lock');
printf("showajaxmessage('" . gettext("This device is currently being maintained by: %s.") . "');", $whom);
}
}
exit;
}
/* Check against locally configured IP addresses, which will catch when someone
port forwards WebGUI access from WAN to an internal IP on the router. */
global $FilterIflist, $nifty_background;
$local_ip = false;
if(strstr($_SERVER['HTTP_HOST'], ":")) {
$http_host_port = explode(":", $_SERVER['HTTP_HOST']);
$http_host = $http_host_port[0];
} else {
$http_host = $_SERVER['HTTP_HOST'];
}
if (empty($FilterIflist)) {
require_once('filter.inc');
require_once('shaper.inc');
filter_generate_optcfg_array();
}
foreach ($FilterIflist as $iflist) {
if($iflist['ip'] == $http_host)
$local_ip = true;
if($iflist['ipv6'] == $http_host)
$local_ip = true;
}
unset($FilterIflist);
if($config['virtualip']) {
if($config['virtualip']['vip']) {
foreach($config['virtualip']['vip'] as $vip) {
if($vip['subnet'] == $http_host)
$local_ip = true;
}
}
}
if (isset($config['openvpn']['openvpn-server'])) {
foreach ($config['openvpn']['openvpn-server'] as $ovpns) {
if (is_ipaddrv4($http_host) && !empty($ovpns['tunnel_network']) && ip_in_subnet($http_host, $ovpns['tunnel_network'])) {
$local_ip = true;
break;
}
if (is_ipaddrv6($http_host) && !empty($ovpns['tunnel_networkv6']) && ip_in_subnet($http_host, $ovpns['tunnel_networkv6'])) {
$local_ip = true;
break;
}
}
}
setcookie("cookie_test", time() + 3600);
$have_cookies = isset($_COOKIE["cookie_test"]);
global $FilterIflist, $nifty_background;
$local_ip = false;
if (strstr($_SERVER['HTTP_HOST'], ":")) {
$http_host_port = explode(":", $_SERVER['HTTP_HOST']);
$http_host = $http_host_port[0];
} else {
$http_host = $_SERVER['HTTP_HOST'];
}
if (empty($FilterIflist)) {
require_once('filter.inc');
require_once('shaper.inc');
filter_generate_optcfg_array();
}
foreach ($FilterIflist as $iflist) {
if ($iflist['ip'] == $http_host) {
$local_ip = true;
}
if ($iflist['ipv6'] == $http_host) {
$local_ip = true;
}
}
unset($FilterIflist);
if ($config['virtualip']) {
if ($config['virtualip']['vip']) {
foreach ($config['virtualip']['vip'] as $vip) {
if ($vip['subnet'] == $http_host) {
$local_ip = true;
}
}
}
}
if (isset($config['openvpn']['openvpn-server'])) {
foreach ($config['openvpn']['openvpn-server'] as $ovpns) {
if (is_ipaddrv4($http_host) && !empty($ovpns['tunnel_network']) && ip_in_subnet($http_host, $ovpns['tunnel_network'])) {
$local_ip = true;
break;
}
if (is_ipaddrv6($http_host) && !empty($ovpns['tunnel_networkv6']) && ip_in_subnet($http_host, $ovpns['tunnel_networkv6'])) {
$local_ip = true;
break;
}
}
}
setcookie("cookie_test", time() + 3600);
$have_cookies = isset($_COOKIE["cookie_test"]);
?><!doctype html>
<!--[if IE 8 ]><html lang="en" class="ie ie8 lte9 lte8 no-js"><![endif]-->
......@@ -233,12 +236,12 @@ function display_login_form()
<div class="container">
<?php
if(is_ipaddr($http_host) && !$local_ip && !isset($config['system']['webgui']['nohttpreferercheck'])) {
$nifty_background = "#999";
print_info_box(gettext("You are accessing this router by an IP address not configured locally, which may be forwarded by NAT or other means. <br /><br />If you did not setup this forwarding, you may be the target of a man-in-the-middle attack."));
}
$loginautocomplete = isset($config['system']['webgui']['loginautocomplete']) ? '' : 'autocomplete="off"';
?>
if (is_ipaddr($http_host) && !$local_ip && !isset($config['system']['webgui']['nohttpreferercheck'])) {
$nifty_background = "#999";
print_info_box(gettext("You are accessing this router by an IP address not configured locally, which may be forwarded by NAT or other means. <br /><br />If you did not setup this forwarding, you may be the target of a man-in-the-middle attack."));
}
$loginautocomplete = isset($config['system']['webgui']['loginautocomplete']) ? '' : 'autocomplete="off"';
?>
<main class="login-modal-container">
......@@ -249,9 +252,11 @@ function display_login_form()
</header>
<div class="login-modal-content">
<?php if (isset($_SESSION['Login_Error'])) { ?>
<?php if (isset($_SESSION['Login_Error'])) {
?>
<div id="inputerrors" class="text-danger"><?=$_SESSION['Login_Error'];?></div><br />
<?php unset($_SESSION['Login_Error']); } // endif ?>
<?php unset($_SESSION['Login_Error']);
} // endif ?>
<form class="clearfix" id="iform" name="iform" method="post" <?= $loginautocomplete ?> action="<?=$_SERVER['REQUEST_URI'];?>">
......@@ -271,12 +276,14 @@ function display_login_form()
</form>
<?php if (!$have_cookies && isset($_POST['login'])): ?>
<?php if (!$have_cookies && isset($_POST['login'])) :
?>
<br /><br />
<span class="text-danger">
<?= gettext("Your browser must support cookies to login."); ?>
</span>
<?php endif; ?>
<?php
endif; ?>
</div>
......
This diff is collapsed.
<?php
$captive_portal_status_title = "Captive Portal Status";
$captive_portal_status_title_link = "status_captiveportal.php";
?>
......@@ -3,5 +3,3 @@
//set variable for custom title
$carp_status_title = "Carp Status";
$carp_status_title_link = "carp_status.php";
?>
......@@ -3,5 +3,3 @@
//set variable for custom title
$dyn_dns_status_title = "Dyn DNS Status";
$dyn_dns_status_title_link = "services_dyndns.php";
?>
......@@ -2,4 +2,3 @@
//set variable for custom title
$gateways_title = "Gateways";
$gateways_title_link = "status_gateways.php";
?>
......@@ -2,4 +2,3 @@
//set variable for custom title
$interface_statistics_title = "Interface Statistics";
$interface_statistics_title_link = "status_interfaces.php";
?>
......@@ -2,5 +2,3 @@
//set variable for custom title
$interfaces_title = "Interfaces";
$interfaces_title_link = "status_interfaces.php";
?>
<?php
$ipsec_title = "IPsec";
$ipsec_title_link = "diag_ipsec.php";
?>
<?php
$load_balancer_status_title = "Load Balancer Status";
$load_balancer_status_title_link = "status_lb_pool.php";
?>
......@@ -2,5 +2,3 @@
//set variable for custom title
$log_title = "Firewall Logs";
$log_title_link = "diag_logs_filter.php";
?>
......@@ -2,4 +2,3 @@
//set variable for custom title
$ntp_status_title = "NTP Status";
$ntp_status_title_link = "status_ntpd.php";
?>
<?php
$openvpn_title = "OpenVPN";
$openvpn_title_link = "status_openvpn.php";
?>
......@@ -3,5 +3,3 @@
//set variable for custom title
$services_status_title = "Services Status";
$services_status_title_link = "status_services.php";
?>
......@@ -2,4 +2,3 @@
//set variable for custom title
$smart_status_title = "SMART Status";
$smart_status_title_link = "diag_smart.php";
?>
......@@ -17,11 +17,11 @@ $thermal_sensors_widget_title = "Thermal Sensors";
//returns core temp data (from coretemp.ko or amdtemp.ko driver) as "|"-delimited string.
//NOTE: depends on proper cofing in System >> Advanced >> Miscellaneous tab >> Thermal Sensors section.
function getThermalSensorsData() {
function getThermalSensorsData()
{
$_gb = exec("/sbin/sysctl -a | grep temperature", $dfout);
$thermalSensorsData = join("|", $dfout);
return $thermalSensorsData;
$_gb = exec("/sbin/sysctl -a | grep temperature", $dfout);
$thermalSensorsData = join("|", $dfout);
return $thermalSensorsData;
}
?>
<?php
$traffic_graphs_title = "Traffic Graphs";
$traffic_graphs_title_link = "status_graph.php";
?>
......@@ -3,5 +3,3 @@
//set variable for custom title
$wake_on_lan_title = "Wake On Lan";
$wake_on_lan_title_link = "services_wol.php";
?>
......@@ -37,35 +37,41 @@ require_once("functions.inc");
require_once("captiveportal.inc");
if (($_GET['act'] == "del") && (!empty($_GET['zone']))) {
$cpzone = $_GET['zone'];
captiveportal_disconnect_client($_GET['id']);
$cpzone = $_GET['zone'];
captiveportal_disconnect_client($_GET['id']);
}
flush();
function clientcmp($a, $b) {
global $order;
return strcmp($a[$order], $b[$order]);
function clientcmp($a, $b)
{
global $order;
return strcmp($a[$order], $b[$order]);
}
if (!is_array($config['captiveportal']))
if (!is_array($config['captiveportal'])) {
$config['captiveportal'] = array();
}
$a_cp =& $config['captiveportal'];
$cpdb_all = array();
foreach ($a_cp as $cpzone => $cp) {
$cpdb_handle = new OPNsense\CaptivePortal\DB($cpzone);
$cpdb_handle = new OPNsense\CaptivePortal\DB($cpzone);
$order = "";
if ($_GET['order']) {
if ($_GET['order'] == "ip") $order = "ip";
else if ($_GET['order'] == "mac") $order = "mac";
else if ($_GET['order'] == "user") $order = "username";
if ($_GET['order']) {
if ($_GET['order'] == "ip") {
$order = "ip";
} elseif ($_GET['order'] == "mac") {
$order = "mac";
} elseif ($_GET['order'] == "user") {
$order = "username";
}
}
$cpdb = $cpdb_handle->listClients(array(),"and",array($order) ) ;
$cpdb_all[$cpzone] = $cpdb;
$cpdb = $cpdb_handle->listClients(array(), "and", array($order)) ;
$cpdb_all[$cpzone] = $cpdb;
}
?>
......@@ -73,25 +79,39 @@ foreach ($a_cp as $cpzone => $cp) {
<tr>
<td class="listhdrr"><a href="?order=ip&amp;showact=<?=$_GET['showact'];?>"><b>IP address</b></a></td>
<td class="listhdrr"><a href="?order=mac&amp;showact=<?=$_GET['showact'];?>"><b>MAC address</b></a></td>
<td class="listhdrr"><a href="?order=user&amp;showact=<?=$_GET['showact'];?>"><b><?=gettext("Username");?></b></a></td>
<?php if ($_GET['showact']): ?>
<td class="listhdrr"><a href="?order=start&amp;showact=<?=$_GET['showact'];?>"><b><?=gettext("Session start");?></b></a></td>
<td class="listhdrr"><a href="?order=start&amp;showact=<?=$_GET['showact'];?>"><b><?=gettext("Last activity");?></b></a></td>
<?php endif; ?>
<td class="listhdrr"><a href="?order=user&amp;showact=<?=$_GET['showact'];
?>"><b><?=gettext("Username");?></b></a></td>
<?php if ($_GET['showact']) :
?>
<td class="listhdrr"><a href="?order=start&amp;showact=<?=$_GET['showact'];
?>"><b><?=gettext("Session start");?></b></a></td>
<td class="listhdrr"><a href="?order=start&amp;showact=<?=$_GET['showact'];
?>"><b><?=gettext("Last activity");?></b></a></td>
<?php
endif; ?>
</tr>
<?php foreach ($cpdb_all as $cpzone=>$cpdb): ?>
<?php foreach ($cpdb as $cpent): ?>
<?php foreach ($cpdb_all as $cpzone => $cpdb) :
?>
<?php foreach ($cpdb as $cpent) :
?>
<tr>
<td class="listlr"><?=$cpent->ip;?></td>
<td class="listr"><?=$cpent->mac;?>&nbsp;</td>
<td class="listr"><?=$cpent->username;?>&nbsp;</td>
<?php if ($_GET['showact']): ?>
<?php if ($_GET['showact']) :
?>
<td class="listr"><?=htmlspecialchars(date("m/d/Y H:i:s", $cpent->allow_time));?></td>
<td class="listr">?</td>
<?php endif; ?>
<?php
endif; ?>
<td valign="middle" class="list nowrap">
<a href="?order=<?=$_GET['order'];?>&amp;showact=<?=$_GET['showact'];?>&amp;act=del&amp;zone=<?=$cpzone;?>&amp;id=<?=$cpent->sessionid;?>" onclick="return confirm('Do you really want to disconnect this client?')"><span class="glyphicon glyphicon-remove"></span></a></td>
<a href="?order=<?=$_GET['order'];
?>&amp;showact=<?=$_GET['showact'];
?>&amp;act=del&amp;zone=<?=$cpzone;
?>&amp;id=<?=$cpent->sessionid;?>" onclick="return confirm('Do you really want to disconnect this client?')"><span class="glyphicon glyphicon-remove"></span></a></td>
</tr>
<?php endforeach; ?>
<?php endforeach; ?>
<?php
endforeach; ?>
<?php
endforeach; ?>
</table>
......@@ -39,43 +39,49 @@ $carp_enabled = get_carp_status();
?>
<table class="table table-striped" width="100%" border="0" cellspacing="0" cellpadding="0" summary="carp status">
<?php
if(is_array($config['virtualip']['vip'])) {
$carpint=0;
foreach($config['virtualip']['vip'] as $carp) {
if ($carp['mode'] != "carp")
continue;
$ipaddress = $carp['subnet'];
$password = $carp['password'];
$netmask = $carp['subnet_bits'];
$vhid = $carp['vhid'];
$advskew = $carp['advskew'];
$status = get_carp_interface_status("{$carp['interface']}_vip{$vhid}");
if (is_array($config['virtualip']['vip'])) {
$carpint=0;
foreach ($config['virtualip']['vip'] as $carp) {
if ($carp['mode'] != "carp") {
continue;
}
$ipaddress = $carp['subnet'];
$password = $carp['password'];
$netmask = $carp['subnet_bits'];
$vhid = $carp['vhid'];
$advskew = $carp['advskew'];
$status = get_carp_interface_status("{$carp['interface']}_vip{$vhid}");
?>
<tr>
<td class="vncellt" width="35%">
<span alt="cablenic" class="glyphicon glyphicon-transfer text-success"></span>&nbsp;
<strong><a href="/system_hasync.php">
<span><?=htmlspecialchars(convert_friendly_interface_to_friendly_descr($carp['interface']) . "@{$vhid}");?></span></a></strong>
</td>
<td width="65%" class="listr">
<td class="vncellt" width="35%">
<span alt="cablenic" class="glyphicon glyphicon-transfer text-success"></span>&nbsp;
<strong><a href="/system_hasync.php">
<span><?=htmlspecialchars(convert_friendly_interface_to_friendly_descr($carp['interface']) . "@{$vhid}");?></span></a></strong>
</td>
<td width="65%" class="listr">
<?php
if($carp_enabled == false) {
$status = "DISABLED";
echo "<span class=\"glyphicon glyphicon-remove text-danger\" title=\"$status\" alt=\"$status\" ></span>";
} else {
if($status == "MASTER") {
echo "<span class=\"glyphicon glyphicon-play text-success\" title=\"$status\" alt=\"$status\" ></span>";
} else if($status == "BACKUP") {
echo "<span class=\"glyphicon glyphicon-play text-muted\" title=\"$status\" alt=\"$status\" ></span>";
} else if($status == "INIT") {
echo "<span class=\"glyphicon glyphicon-info-sign\" title=\"$status\" alt=\"$status\" ></span>";
}
}
if ($ipaddress){ ?> &nbsp;
<?=htmlspecialchars($status);?> &nbsp;
<?=htmlspecialchars($ipaddress);}?>
</td></tr><?php }
} else { ?>
if ($carp_enabled == false) {
$status = "DISABLED";
echo "<span class=\"glyphicon glyphicon-remove text-danger\" title=\"$status\" alt=\"$status\" ></span>";
} else {
if ($status == "MASTER") {
echo "<span class=\"glyphicon glyphicon-play text-success\" title=\"$status\" alt=\"$status\" ></span>";
} elseif ($status == "BACKUP") {
echo "<span class=\"glyphicon glyphicon-play text-muted\" title=\"$status\" alt=\"$status\" ></span>";
} elseif ($status == "INIT") {
echo "<span class=\"glyphicon glyphicon-info-sign\" title=\"$status\" alt=\"$status\" ></span>";
}
}
if ($ipaddress) {
?> &nbsp;
<?=htmlspecialchars($status);?> &nbsp;
<?=htmlspecialchars($ipaddress);
}?>
</td></tr><?php
}
} else {
?>
<tr><td class="listr">No CARP Interfaces Defined. Click <a href="carp_status.php">here</a> to configure CARP.</td></tr>
<?php } ?>
<?php
} ?>
</table>
......@@ -35,36 +35,39 @@ require_once("pfsense-utils.inc");
require_once("functions.inc");
require_once("widgets/include/dyn_dns_status.inc");
if (!is_array($config['dyndnses']['dyndns']))
$config['dyndnses']['dyndns'] = array();
if (!is_array($config['dyndnses']['dyndns'])) {
$config['dyndnses']['dyndns'] = array();
}
$a_dyndns = &$config['dyndnses']['dyndns'];
if($_REQUEST['getdyndnsstatus']) {
$first_entry = true;
foreach ($a_dyndns as $dyndns) {
if ($first_entry)
$first_entry = false;
else
// Put a vertical bar delimiter between the echoed HTML for each entry processed.
echo "|";
if ($_REQUEST['getdyndnsstatus']) {
$first_entry = true;
foreach ($a_dyndns as $dyndns) {
if ($first_entry) {
$first_entry = false;
} else {
// Put a vertical bar delimiter between the echoed HTML for each entry processed.
echo "|";
}
$filename = "/conf/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache";
if (file_exists($filename)) {
$ipaddr = dyndnsCheckIP($dyndns['interface']);
$cached_ip_s = split(":", file_get_contents($filename));
$cached_ip = $cached_ip_s[0];
if ($ipaddr <> $cached_ip)
echo "<font color='red'>";
else
echo "<font color='green'>";
echo htmlspecialchars($cached_ip);
echo "</font>";
} else {
echo "N/A " . date("H:i:s");
}
}
exit;
$filename = "/conf/dyndns_{$dyndns['interface']}{$dyndns['type']}" . escapeshellarg($dyndns['host']) . "{$dyndns['id']}.cache";
if (file_exists($filename)) {
$ipaddr = dyndnsCheckIP($dyndns['interface']);
$cached_ip_s = split(":", file_get_contents($filename));
$cached_ip = $cached_ip_s[0];
if ($ipaddr <> $cached_ip) {
echo "<font color='red'>";
} else {
echo "<font color='green'>";
}
echo htmlspecialchars($cached_ip);
echo "</font>";
} else {
echo "N/A " . date("H:i:s");
}
}
exit;
}
?>
......@@ -76,56 +79,62 @@ if($_REQUEST['getdyndnsstatus']) {
<td width="20%" class="listhdrr"><b><?=gettext("Hostname");?></b></td>
<td width="20%" class="listhdrr"><b><?=gettext("Cached IP");?></b></td>
</tr>
<?php $i = 0; foreach ($a_dyndns as $dyndns): ?>
<?php $i = 0; foreach ($a_dyndns as $dyndns) :
?>
<tr ondblclick="document.location='services_dyndns_edit.php?id=<?=$i;?>'">
<td class="listlr">
<?php $iflist = get_configured_interface_with_descr();
foreach ($iflist as $if => $ifdesc) {
if ($dyndns['interface'] == $if) {
if (!isset($dyndns['enable']))
echo "<span class=\"gray\">{$ifdesc}</span>";
else
echo "{$ifdesc}";
break;
}
}
$groupslist = return_gateway_groups_array();
foreach ($groupslist as $if => $group) {
if ($dyndns['interface'] == $if) {
if (!isset($dyndns['enable']))
echo "<span class=\"gray\">{$if}</span>";
else
echo "{$if}";
break;
}
}
?>
foreach ($iflist as $if => $ifdesc) {
if ($dyndns['interface'] == $if) {
if (!isset($dyndns['enable'])) {
echo "<span class=\"gray\">{$ifdesc}</span>";
} else {
echo "{$ifdesc}";
}
break;
}
}
$groupslist = return_gateway_groups_array();
foreach ($groupslist as $if => $group) {
if ($dyndns['interface'] == $if) {
if (!isset($dyndns['enable'])) {
echo "<span class=\"gray\">{$if}</span>";
} else {
echo "{$if}";
}
break;
}
}
?>
</td>
<td class="listr">
<?php
$types = services_dyndns_list();
if (isset($types[$dyndns['type']])) {
if (!isset($dyndns['enable'])) {
echo '<span class="gray">' . htmlspecialchars($types[$dyndns['type']]) . '</span>';
} else {
echo htmlspecialchars($types[$dyndns['type']]);
}
}
?>
$types = services_dyndns_list();
if (isset($types[$dyndns['type']])) {
if (!isset($dyndns['enable'])) {
echo '<span class="gray">' . htmlspecialchars($types[$dyndns['type']]) . '</span>';
} else {
echo htmlspecialchars($types[$dyndns['type']]);
}
}
?>
</td>
<td class="listr">
<?php
if (!isset($dyndns['enable']))
echo "<span class=\"gray\">".htmlspecialchars($dyndns['host'])."</span>";
else
echo htmlspecialchars($dyndns['host']);
?>
if (!isset($dyndns['enable'])) {
echo "<span class=\"gray\">".htmlspecialchars($dyndns['host'])."</span>";
} else {
echo htmlspecialchars($dyndns['host']);
}
?>
</td>
<td class="listr">
<div id='dyndnsstatus<?php echo $i; ?>'><?php echo gettext("Checking ..."); ?></div>
</td>
</tr>
<?php $i++; endforeach; ?>
<?php $i++;
endforeach; ?>
</table>
<script type="text/javascript">
//<![CDATA[
......
......@@ -48,7 +48,8 @@ $counter = 1;
<td align="center"><b><?php echo gettext('Loss')?></b></td>
<td align="center"><b><?php echo gettext('Status')?></b></td>
</tr>
<?php foreach ($a_gateways as $gname => $gateway) { ?>
<?php foreach ($a_gateways as $gname => $gateway) {
?>
<tr>
<td class="h6" id="gateway<?php echo $counter; ?>" rowspan="2" align="center">
<strong>
......@@ -59,69 +60,74 @@ $counter = 1;
<td colspan="3" align="left">
<div class="h6" id="gateway<?php echo $counter; ?>" style="display:inline">
<?php
$if_gw = '';
if (is_ipaddr($gateway['gateway']))
$if_gw = htmlspecialchars($gateway['gateway']);
else {
if($gateway['ipprotocol'] == "inet")
$if_gw = htmlspecialchars(get_interface_gateway($gateway['friendlyiface']));
if($gateway['ipprotocol'] == "inet6")
$if_gw = htmlspecialchars(get_interface_gateway_v6($gateway['friendlyiface']));
}
echo ($if_gw == '' ? '~' : $if_gw);
unset ($if_gw);
$counter++;
?>
$if_gw = '';
if (is_ipaddr($gateway['gateway'])) {
$if_gw = htmlspecialchars($gateway['gateway']);
} else {
if ($gateway['ipprotocol'] == "inet") {
$if_gw = htmlspecialchars(get_interface_gateway($gateway['friendlyiface']));
}
if ($gateway['ipprotocol'] == "inet6") {
$if_gw = htmlspecialchars(get_interface_gateway_v6($gateway['friendlyiface']));
}
}
echo ($if_gw == '' ? '~' : $if_gw);
unset ($if_gw);
$counter++;
?>
</div>
</td>
</tr>
<tr>
<td align="center" id="gateway<?php echo $counter; ?>">
<?php
if ($gateways_status[$gname])
echo htmlspecialchars($gateways_status[$gname]['delay']);
else
echo gettext("Pending");
?>
if ($gateways_status[$gname]) {
echo htmlspecialchars($gateways_status[$gname]['delay']);
} else {
echo gettext("Pending");
}
?>
<?php $counter++; ?>
</td>
<td align="center" id="gateway<?php echo $counter; ?>">
<?php
if ($gateways_status[$gname])
echo htmlspecialchars($gateways_status[$gname]['loss']);
else
echo gettext("Pending");
?>
if ($gateways_status[$gname]) {
echo htmlspecialchars($gateways_status[$gname]['loss']);
} else {
echo gettext("Pending");
}
?>
<?php $counter++; ?>
</td>
<?php
if ($gateways_status[$gname]) {
if (stristr($gateways_status[$gname]['status'], "force_down")) {
$online = "Offline (forced)";
$class="danger";
} elseif (stristr($gateways_status[$gname]['status'], "down")) {
$online = "Offline";
$class="danger";
} elseif (stristr($gateways_status[$gname]['status'], "loss")) {
$online = "Packetloss";
$class="warning";
} elseif (stristr($gateways_status[$gname]['status'], "delay")) {
$online = "Latency";
$class="warning";
} elseif ($gateways_status[$gname]['status'] == "none") {
$online = "Online";
$class="success";
} elseif ($gateways_status[$gname]['status'] == "") {
$online = "Pending";
$class="info";
}
} else {
$online = gettext("Unknown");
$class="info";
}
echo "<td class=\"$class\" align=\"center\">$online</td>\n";
$counter++;
?>
if ($gateways_status[$gname]) {
if (stristr($gateways_status[$gname]['status'], "force_down")) {
$online = "Offline (forced)";
$class="danger";
} elseif (stristr($gateways_status[$gname]['status'], "down")) {
$online = "Offline";
$class="danger";
} elseif (stristr($gateways_status[$gname]['status'], "loss")) {
$online = "Packetloss";
$class="warning";
} elseif (stristr($gateways_status[$gname]['status'], "delay")) {
$online = "Latency";
$class="warning";
} elseif ($gateways_status[$gname]['status'] == "none") {
$online = "Online";
$class="success";
} elseif ($gateways_status[$gname]['status'] == "") {
$online = "Pending";
$class="info";
}
} else {
$online = gettext("Unknown");
$class="info";
}
echo "<td class=\"$class\" align=\"center\">$online</td>\n";
$counter++;
?>
</tr>
<?php } // foreach ?>
<?php
} // foreach ?>
</table>
......@@ -31,9 +31,9 @@ require_once("guiconfig.inc");
require_once("gmirror.inc");
if ($_GET['textonly'] == "true") {
header("Cache-Control: no-cache");
echo gmirror_html_status();
exit;
header("Cache-Control: no-cache");
echo gmirror_html_status();
exit;
}
?>
<table class="table table-striped" width="100%" border="0" cellspacing="0" cellpadding="0" summary="gmirror status">
......
......@@ -36,69 +36,97 @@ require_once("pfsense-utils.inc");
require_once("functions.inc");
require_once("widgets/include/interfaces.inc");
$i = 0;
$ifdescrs = get_configured_interface_with_descr();
$i = 0;
$ifdescrs = get_configured_interface_with_descr();
?>
<table class="table table-striped">
<?php
foreach ($ifdescrs as $ifdescr => $ifname) {
$ifinfo = get_interface_info($ifdescr);
$iswireless = is_interface_wireless($ifdescr);
?>
foreach ($ifdescrs as $ifdescr => $ifname) {
$ifinfo = get_interface_info($ifdescr);
$iswireless = is_interface_wireless($ifdescr);
?>
<tr>
<td class="vncellt" >
<?php
if($ifinfo['ppplink']) {
?> <span alt="3g" class="glyphicon glyphicon-phone text-success"></span> <?php
} else if($iswireless) {
if($ifinfo['status'] == "associated") { ?>
if ($ifinfo['ppplink']) {
?> <span alt="3g" class="glyphicon glyphicon-phone text-success"></span> <?php
} elseif ($iswireless) {
if ($ifinfo['status'] == "associated") {
?>
<span alt="wlan" class="glyphicon glyphicon-signal text-success"></span>
<?php } else { ?>
<?php
} else {
?>
<span alt="wlan_d" class="glyphicon glyphicon-signal text-danger"></span>
<?php } ?>
<?php } else { ?>
<?php if ($ifinfo['status'] == "up") { ?>
<?php
} ?>
<?php
} else {
?>
<?php if ($ifinfo['status'] == "up") {
?>
<span alt="cablenic" id="<?php echo $ifname . 'icon';?>" class="glyphicon glyphicon-transfer text-success"></span>
<?php } else { ?>
<span alt="cablenic" id="<?php echo $ifname . 'icon';?>" class="glyphicon glyphicon-transfer text-danger"></span>
<?php } ?>
<?php } ?>&nbsp;
<?php
} else {
?>
<span alt="cablenic" id="<?php echo $ifname . 'icon';?>" class="glyphicon glyphicon-transfer text-danger"></span>
<?php
} ?>
<?php
} ?>&nbsp;
<strong><u>
<span onclick="location.href='/interfaces.php?if=<?=$ifdescr; ?>'" style="cursor:pointer">
<?=htmlspecialchars($ifname);?></span></u></strong>
<?php
if ($ifinfo['dhcplink'])
echo "&nbsp;(DHCP)";
?>
if ($ifinfo['dhcplink']) {
echo "&nbsp;(DHCP)";
}
?>
</td>
<?php if($ifinfo['status'] == "up" || $ifinfo['status'] == "associated") { ?>
<?php if ($ifinfo['status'] == "up" || $ifinfo['status'] == "associated") {
?>
<td class="listr" align="center">
<span id="<?php echo $ifname;?>" class="glyphicon glyphicon-arrow-up text-success"></span>
</td>
<?php } else if ($ifinfo['status'] == "no carrier") { ?>
<?php
} elseif ($ifinfo['status'] == "no carrier") {
?>
<td class="listr" align="center">
<span id="<?php echo $ifname;?>" class="glyphicon glyphicon-arrow-down text-danger"></span>
</td>
<?php } else if ($ifinfo['status'] == "down") { ?>
<?php
} elseif ($ifinfo['status'] == "down") {
?>
<td class="listr" align="center">
<span id="<?php echo $ifname;?>" class="glyphicon glyphicon-arrow-remove text-danger"></span>
</td>
<?php } else { ?><?=htmlspecialchars($ifinfo['status']); }?>
<?php
} else {
?><?=htmlspecialchars($ifinfo['status']);
}?>
<td class="listr">
<div id="<?php echo $ifname;?>" style="display:inline"><?=htmlspecialchars($ifinfo['media']);?></div>
<div id="<?php echo $ifname;
?>" style="display:inline"><?=htmlspecialchars($ifinfo['media']);?></div>
</td>
<td class="vncellt">
<?php if($ifinfo['ipaddr'] != "") { ?>
<div id="<?php echo $ifname;?>-ip" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddr']);?> </div>
<?php if ($ifinfo['ipaddr'] != "") {
?>
<div id="<?php echo $ifname;
?>-ip" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddr']);?> </div>
<br />
<?php }
if ($ifinfo['ipaddrv6'] != "") { ?>
<div id="<?php echo $ifname;?>-ipv6" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddrv6']);?> </div>
<?php } ?>
<?php
}
if ($ifinfo['ipaddrv6'] != "") {
?>
<div id="<?php echo $ifname;
?>-ipv6" style="display:inline"><?=htmlspecialchars($ifinfo['ipaddrv6']);?> </div>
<?php
} ?>
</td>
</tr>
<?php }//end for each ?>
<?php
}//end for each ?>
</table>
......@@ -49,27 +49,27 @@ $array_interrupt = array();
$interfacecounter = 0;
//build data arrays
foreach ($ifdescrs as $ifdescr => $ifname){
$ifinfo = get_interface_info($ifdescr);
$interfacecounter++;
if ($ifinfo['status'] != "down"){
$array_in_packets[] = $ifinfo['inpkts'];
$array_out_packets[] = $ifinfo['outpkts'];
$array_in_bytes[] = format_bytes($ifinfo['inbytes']);
$array_out_bytes[] = format_bytes($ifinfo['outbytes']);
if (isset($ifinfo['inerrs'])){
$array_in_errors[] = $ifinfo['inerrs'];
$array_out_errors[] = $ifinfo['outerrs'];
}
else{
$array_in_errors[] = "n/a";
$array_out_errors[] = "n/a";
}
if (isset($ifinfo['collisions']))
$array_collisions[] = htmlspecialchars($ifinfo['collisions']);
else
$array_collisions[] = "n/a";
}
foreach ($ifdescrs as $ifdescr => $ifname) {
$ifinfo = get_interface_info($ifdescr);
$interfacecounter++;
if ($ifinfo['status'] != "down") {
$array_in_packets[] = $ifinfo['inpkts'];
$array_out_packets[] = $ifinfo['outpkts'];
$array_in_bytes[] = format_bytes($ifinfo['inbytes']);
$array_out_bytes[] = format_bytes($ifinfo['outbytes']);
if (isset($ifinfo['inerrs'])) {
$array_in_errors[] = $ifinfo['inerrs'];
$array_out_errors[] = $ifinfo['outerrs'];
} else {
$array_in_errors[] = "n/a";
$array_out_errors[] = "n/a";
}
if (isset($ifinfo['collisions'])) {
$array_collisions[] = htmlspecialchars($ifinfo['collisions']);
} else {
$array_collisions[] = "n/a";
}
}
}//end for
......@@ -106,102 +106,110 @@ foreach ($ifdescrs as $ifdescr => $ifname){
<table class="table table-striped" width="100%" border="0" cellspacing="0" cellpadding="0" summary="the stats">
<tr>
<?php
$interface_names = array();
foreach ($ifdescrs as $ifdescr => $ifname):
$ifinfo = get_interface_info($ifdescr);
if ($ifinfo['status'] != "down"){ ?>
<td class="widgetsubheader nowrap" style="height:25px">
<b><?=htmlspecialchars($ifname);?></b>
</td>
<?php
//build array of interface names
$interface_names[] = $ifname;
}
endforeach; ?>
$interface_names = array();
foreach ($ifdescrs as $ifdescr => $ifname) :
$ifinfo = get_interface_info($ifdescr);
if ($ifinfo['status'] != "down") {
?>
<td class="widgetsubheader nowrap" style="height:25px">
<b><?=htmlspecialchars($ifname);?></b>
</td>
<?php
//build array of interface names
$interface_names[] = $ifname;
}
endforeach; ?>
</tr>
<tr>
<?php
$counter = 1;
foreach ($array_in_packets as $data): ?>
$counter = 1;
foreach ($array_in_packets as $data) :
?>
<td class="listr nowrap" id="stat<?php echo $counter?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
$counter = $counter + 7;
endforeach; ?>
$counter = $counter + 7;
endforeach; ?>
</tr>
<tr>
<?php
$counter = 2;
foreach ($array_out_packets as $data): ?>
$counter = 2;
foreach ($array_out_packets as $data) :
?>
<td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
$counter = $counter + 7;
endforeach; ?>
$counter = $counter + 7;
endforeach; ?>
</tr>
<tr>
<?php
$counter = 3;
foreach ($array_in_bytes as $data): ?>
$counter = 3;
foreach ($array_in_bytes as $data) :
?>
<td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
$counter = $counter + 7;
endforeach; ?>
$counter = $counter + 7;
endforeach; ?>
</tr>
<tr>
<?php
$counter = 4;
foreach ($array_out_bytes as $data): ?>
$counter = 4;
foreach ($array_out_bytes as $data) :
?>
<td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
$counter = $counter + 7;
endforeach; ?>
$counter = $counter + 7;
endforeach; ?>
</tr>
<tr>
<?php
$counter = 5;
foreach ($array_in_errors as $data): ?>
$counter = 5;
foreach ($array_in_errors as $data) :
?>
<td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
$counter = $counter + 7;
endforeach; ?>
$counter = $counter + 7;
endforeach; ?>
</tr>
<tr>
<?php
$counter = 6;
foreach ($array_out_errors as $data): ?>
$counter = 6;
foreach ($array_out_errors as $data) :
?>
<td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
$counter = $counter + 7;
endforeach; ?>
$counter = $counter + 7;
endforeach; ?>
</tr>
<tr>
<?php
$counter = 7;
foreach ($array_collisions as $data): ?>
$counter = 7;
foreach ($array_collisions as $data) :
?>
<td class="listr nowrap" id="stat<?php echo $counter;?>" style="height:25px">
<?=htmlspecialchars($data);?>
</td>
<?php
$counter = $counter + 7;
endforeach; ?>
$counter = $counter + 7;
endforeach; ?>
</tr>
</table>
</div>
......@@ -34,58 +34,61 @@ require_once("guiconfig.inc");
require_once("functions.inc");
require_once("ipsec.inc");
if (isset($config['ipsec']['phase1'])){?>
if (isset($config['ipsec']['phase1'])) {
?>
<div>&nbsp;</div>
<?php
$tab_array = array();
$tab_array[0] = array("Overview", true, "ipsec-Overview");
$tab_array[1] = array("Tunnels", false, "ipsec-tunnel");
$tab_array[2] = array("Mobile", false, "ipsec-mobile");
display_widget_tabs($tab_array);
$spd = ipsec_dump_spd();
$sad = ipsec_dump_sad();
$mobile = array(); // TODO: temporary disabled ( https://github.com/opnsense/core/issues/139 ) ipsec_dump_mobile();
$ipsec_status = ipsec_smp_dump_status();
$activecounter = 0;
$inactivecounter = 0;
$ipsec_detail_array = array();
foreach ($config['ipsec']['phase2'] as $ph2ent){
if ($ph2ent['remoteid']['type'] == "mobile")
continue;
ipsec_lookup_phase1($ph2ent,$ph1ent);
$ipsecstatus = false;
$tun_disabled = "false";
$foundsrc = false;
$founddst = false;
if (isset($ph1ent['disabled']) || isset($ph2ent['disabled'])) {
$tun_disabled = "true";
continue;
}
if (isset($ipsec_status['query']['ikesalist']['ikesa']) && isset($ph1ent['ikeid']) && ipsec_phase1_status($ipsec_status['query']['ikesalist']['ikesa'], $ph1ent['ikeid'])) {
/* tunnel is up */
$iconfn = "true";
$activecounter++;
} else {
/* tunnel is down */
$iconfn = "false";
$inactivecounter++;
}
$ipsec_detail_array[] = array('src' => convert_friendly_interface_to_friendly_descr($ph1ent['interface']),
'dest' => $ph1ent['remote-gateway'],
'remote-subnet' => ipsec_idinfo_to_text($ph2ent['remoteid']),
'descr' => $ph2ent['descr'],
'status' => $iconfn,
'disabled' => $tun_disabled);
}
$tab_array = array();
$tab_array[0] = array("Overview", true, "ipsec-Overview");
$tab_array[1] = array("Tunnels", false, "ipsec-tunnel");
$tab_array[2] = array("Mobile", false, "ipsec-mobile");
display_widget_tabs($tab_array);
$spd = ipsec_dump_spd();
$sad = ipsec_dump_sad();
$mobile = array(); // TODO: temporary disabled ( https://github.com/opnsense/core/issues/139 ) ipsec_dump_mobile();
$ipsec_status = ipsec_smp_dump_status();
$activecounter = 0;
$inactivecounter = 0;
$ipsec_detail_array = array();
foreach ($config['ipsec']['phase2'] as $ph2ent) {
if ($ph2ent['remoteid']['type'] == "mobile") {
continue;
}
ipsec_lookup_phase1($ph2ent, $ph1ent);
$ipsecstatus = false;
$tun_disabled = "false";
$foundsrc = false;
$founddst = false;
if (isset($ph1ent['disabled']) || isset($ph2ent['disabled'])) {
$tun_disabled = "true";
continue;
}
if (isset($ipsec_status['query']['ikesalist']['ikesa']) && isset($ph1ent['ikeid']) && ipsec_phase1_status($ipsec_status['query']['ikesalist']['ikesa'], $ph1ent['ikeid'])) {
/* tunnel is up */
$iconfn = "true";
$activecounter++;
} else {
/* tunnel is down */
$iconfn = "false";
$inactivecounter++;
}
$ipsec_detail_array[] = array('src' => convert_friendly_interface_to_friendly_descr($ph1ent['interface']),
'dest' => $ph1ent['remote-gateway'],
'remote-subnet' => ipsec_idinfo_to_text($ph2ent['remoteid']),
'descr' => $ph2ent['descr'],
'status' => $iconfn,
'disabled' => $tun_disabled);
}
}
if (isset($config['ipsec']['phase2'])){ ?>
if (isset($config['ipsec']['phase2'])) {
?>
<div id="ipsec-Overview" style="display:block;background-color:#EEEEEE;">
<div>
......@@ -98,7 +101,12 @@ if (isset($config['ipsec']['phase1'])){?>
<tr>
<td><?php echo $activecounter; ?></td>
<td><?php echo $inactivecounter; ?></td>
<td><?php if (is_array($mobile['pool'])) echo htmlspecialchars($mobile['pool'][0]['usage']); else echo 0; ?></td>
<td><?php if (is_array($mobile['pool'])) {
echo htmlspecialchars($mobile['pool'][0]['usage']);
} else {
echo 0;
} ?></td>
</tr>
</table>
</div>
......@@ -114,17 +122,15 @@ if (isset($config['ipsec']['phase1'])){?>
</div>
<div style="max-height:105px;overflow:auto;">
<?php
foreach ($ipsec_detail_array as $ipsec) :
foreach ($ipsec_detail_array as $ipsec) :
if ($ipsec['disabled'] == "true") {
$spans = "<span class=\"gray\">";
$spane = "</span>";
} else {
$spans = $spane = "";
}
if ($ipsec['disabled'] == "true"){
$spans = "<span class=\"gray\">";
$spane = "</span>";
}
else {
$spans = $spane = "";
}
?>
?>
<div style="display:table-row;">
<div style="display:table-cell;width:39px">
......@@ -141,19 +147,20 @@ if (isset($config['ipsec']['phase1'])){?>
<div style="display:table-cell;width:37px" align="center"><?php echo $spans;?>
<?php
if($ipsec['status'] == "true") {
/* tunnel is up */
$iconfn = "text-success";
} else {
/* tunnel is down */
$iconfn = "text-danger";
}
if ($ipsec['status'] == "true") {
/* tunnel is up */
$iconfn = "text-success";
} else {
/* tunnel is down */
$iconfn = "text-danger";
}
echo "<span class='glyphicon glyphicon-transfer ".$iconfn."' alt='Tunnel status'></span>";
echo "<span class='glyphicon glyphicon-transfer ".$iconfn."' alt='Tunnel status'></span>";
?><?php echo $spane;?></div>
?><?php echo $spane;?></div>
</div>
<?php endforeach; ?>
<?php
endforeach; ?>
</div>
</div>
</div>
......@@ -166,10 +173,11 @@ if (isset($config['ipsec']['phase1'])){?>
</div>
<div style="max-height:105px;overflow:auto;">
<?php
if (is_array($mobile['pool'])):
foreach ($mobile['pool'] as $pool):
if (is_array($pool['lease'])):
foreach ($pool['lease'] as $muser) : ?>
if (is_array($mobile['pool'])) :
foreach ($mobile['pool'] as $pool) :
if (is_array($pool['lease'])) :
foreach ($pool['lease'] as $muser) :
?>
<div style="display:table-row;">
<div class="listlr" style="display:table-cell;width:139px">
<?php echo htmlspecialchars($muser['id']);?><br />
......@@ -182,17 +190,18 @@ if (isset($config['ipsec']['phase1'])){?>
</div>
</div>
<?php
endforeach;
endif;
endforeach;
endif;
endforeach;
endif;
endforeach;
endif;
?>
</div>
</div>
</div>
</div>
</div>
<?php //end ipsec tunnel
}//end if tunnels are configured, else show code below
else { ?>
} //end if tunnels are configured, else show code below
else {
?>
<div style="display:block">
<table class="table table-striped" width="100%" border="0" cellpadding="0" cellspacing="0" summary="note">
<tr>
......@@ -210,4 +219,5 @@ else { ?>
</tr>
</table>
</div>
<?php } ?>
<?php
}
......@@ -42,13 +42,13 @@ $now = time();
$year = date("Y");
if (!is_array($config['load_balancer'])) {
$config['load_balancer'] = array();
$config['load_balancer'] = array();
}
if (!is_array($config['load_balancer']['lbpool'])) {
$config['load_balancer']['lbpool'] = array();
$config['load_balancer']['lbpool'] = array();
}
if (!is_array($config['load_balancer']['virtual_server'])) {
$config['load_balancer']['virtual_server'] = array();
$config['load_balancer']['virtual_server'] = array();
}
$a_vs = &$config['load_balancer']['virtual_server'];
$a_pool = &$config['load_balancer']['lbpool'];
......@@ -58,7 +58,7 @@ $relay_hosts = get_lb_summary();
$lb_logfile = '/var/log/relayd.log';
$nentries = $config['syslog']['nentries'];
if (!$nentries) {
$nentries = 50;
$nentries = 50;
}
?>
......@@ -69,23 +69,24 @@ if (!$nentries) {
<td width="10%" class="listhdrr">Pool</td>
<td width="30%" class="listhdr">Description</td>
</thead>
<?php $i = 0; foreach ($a_vs as $vsent): ?>
<?php $i = 0; foreach ($a_vs as $vsent) :
?>
<tr>
<?php
switch (trim($rdr_a[$vsent['name']]['status'])) {
case 'active':
$bgcolor = "#90EE90"; // lightgreen
$rdr_a[$vsent['name']]['status'] = "Active";
break;
case 'down':
$bgcolor = "#F08080"; // lightcoral
$rdr_a[$vsent['name']]['status'] = "Down";
break;
default:
$bgcolor = "#D3D3D3"; // lightgray
$rdr_a[$vsent['name']]['status'] = 'Unknown - relayd not running?';
}
?>
switch (trim($rdr_a[$vsent['name']]['status'])) {
case 'active':
$bgcolor = "#90EE90"; // lightgreen
$rdr_a[$vsent['name']]['status'] = "Active";
break;
case 'down':
$bgcolor = "#F08080"; // lightcoral
$rdr_a[$vsent['name']]['status'] = "Down";
break;
default:
$bgcolor = "#D3D3D3"; // lightgray
$rdr_a[$vsent['name']]['status'] = 'Unknown - relayd not running?';
}
?>
<td class="listlr">
<?=$vsent['name'];?><br />
<span style="background-color: <?=$bgcolor?>; display: block"><i><?=$rdr_a[$vsent['name']]['status']?></i></span>
......@@ -94,52 +95,55 @@ if (!$nentries) {
<td class="listr" align="center" >
<table border="0" cellpadding="0" cellspacing="2" summary="status">
<?php
foreach ($a_pool as $pool) {
if ($pool['name'] == $vsent['poolname']) {
$pool_hosts=array();
foreach ((array) $pool['servers'] as $server) {
$svr['ip']['addr']=$server;
$svr['ip']['state']=$relay_hosts[$pool['name'].":".$pool['port']][$server]['state'];
$svr['ip']['avail']=$relay_hosts[$pool['name'].":".$pool['port']][$server]['avail'];
$pool_hosts[]=$svr;
}
foreach ((array) $pool['serversdisabled'] as $server) {
$svr['ip']['addr']="$server";
$svr['ip']['state']='disabled';
$svr['ip']['avail']='disabled';
$pool_hosts[]=$svr;
}
asort($pool_hosts);
foreach ((array) $pool_hosts as $server) {
if($server['ip']['addr']!="") {
switch ($server['ip']['state']) {
case 'up':
$bgcolor = "#90EE90"; // lightgreen
$checked = "checked";
break;
case 'disabled':
$bgcolor = "#FFFFFF"; // white
$checked = "";
break;
default:
$bgcolor = "#F08080"; // lightcoral
$checked = "checked";
}
echo "<tr>";
echo "<td bgcolor=\"{$bgcolor}\">&nbsp;{$server['ip']['addr']}:{$pool['port']}&nbsp;</td><td bgcolor=\"{$bgcolor}\">&nbsp;";
if($server['ip']['avail'])
echo " ({$server['ip']['avail']}) ";
echo "&nbsp;</td></tr>";
}
}
}
}
?>
foreach ($a_pool as $pool) {
if ($pool['name'] == $vsent['poolname']) {
$pool_hosts=array();
foreach ((array) $pool['servers'] as $server) {
$svr['ip']['addr']=$server;
$svr['ip']['state']=$relay_hosts[$pool['name'].":".$pool['port']][$server]['state'];
$svr['ip']['avail']=$relay_hosts[$pool['name'].":".$pool['port']][$server]['avail'];
$pool_hosts[]=$svr;
}
foreach ((array) $pool['serversdisabled'] as $server) {
$svr['ip']['addr']="$server";
$svr['ip']['state']='disabled';
$svr['ip']['avail']='disabled';
$pool_hosts[]=$svr;
}
asort($pool_hosts);
foreach ((array) $pool_hosts as $server) {
if ($server['ip']['addr']!="") {
switch ($server['ip']['state']) {
case 'up':
$bgcolor = "#90EE90"; // lightgreen
$checked = "checked";
break;
case 'disabled':
$bgcolor = "#FFFFFF"; // white
$checked = "";
break;
default:
$bgcolor = "#F08080"; // lightcoral
$checked = "checked";
}
echo "<tr>";
echo "<td bgcolor=\"{$bgcolor}\">&nbsp;{$server['ip']['addr']}:{$pool['port']}&nbsp;</td><td bgcolor=\"{$bgcolor}\">&nbsp;";
if ($server['ip']['avail']) {
echo " ({$server['ip']['avail']}) ";
}
echo "&nbsp;</td></tr>";
}
}
}
}
?>
</table>
</td>
<td class="listbg" >
<font color="#FFFFFF"><?=$vsent['descr'];?></font>
</td>
</tr>
<?php $i++; endforeach; ?>
<?php $i++;
endforeach; ?>
</table>
......@@ -36,28 +36,36 @@ require_once("pfsense-utils.inc");
require_once("functions.inc");
require_once("filter_log.inc");
if(is_numeric($_POST['filterlogentries'])) {
$config['widgets']['filterlogentries'] = $_POST['filterlogentries'];
$acts = array();
if ($_POST['actpass']) $acts[] = "Pass";
if ($_POST['actblock']) $acts[] = "Block";
if ($_POST['actreject']) $acts[] = "Reject";
if (!empty($acts))
$config['widgets']['filterlogentriesacts'] = implode(" ", $acts);
else
unset($config['widgets']['filterlogentriesacts']);
unset($acts);
if( ($_POST['filterlogentriesinterfaces']) and ($_POST['filterlogentriesinterfaces'] != "All") )
$config['widgets']['filterlogentriesinterfaces'] = trim($_POST['filterlogentriesinterfaces']);
else
unset($config['widgets']['filterlogentriesinterfaces']);
write_config("Saved Filter Log Entries via Dashboard");
Header("Location: /");
exit(0);
if (is_numeric($_POST['filterlogentries'])) {
$config['widgets']['filterlogentries'] = $_POST['filterlogentries'];
$acts = array();
if ($_POST['actpass']) {
$acts[] = "Pass";
}
if ($_POST['actblock']) {
$acts[] = "Block";
}
if ($_POST['actreject']) {
$acts[] = "Reject";
}
if (!empty($acts)) {
$config['widgets']['filterlogentriesacts'] = implode(" ", $acts);
} else {
unset($config['widgets']['filterlogentriesacts']);
}
unset($acts);
if (($_POST['filterlogentriesinterfaces']) and ($_POST['filterlogentriesinterfaces'] != "All")) {
$config['widgets']['filterlogentriesinterfaces'] = trim($_POST['filterlogentriesinterfaces']);
} else {
unset($config['widgets']['filterlogentriesinterfaces']);
}
write_config("Saved Filter Log Entries via Dashboard");
Header("Location: /");
exit(0);
}
$nentries = isset($config['widgets']['filterlogentries']) ? $config['widgets']['filterlogentries'] : 5;
......@@ -68,8 +76,8 @@ $nentriesacts = isset($config['widgets']['filterlogentriesacts']) ?
$nentriesinterfaces = isset($config['widgets']['filterlogentriesinterfaces']) ? $config['widgets']['filterlogentriesinterfaces'] : 'All';
$filterfieldsarray = array(
"act" => $nentriesacts,
"interface" => $nentriesinterfaces
"act" => $nentriesacts,
"interface" => $nentriesinterfaces
);
$filter_logfile = '/var/log/filter.log';
......@@ -91,10 +99,11 @@ var isPaused = false;
var nentries = <?php echo $nentries; ?>;
<?php
if(isset($config['syslog']['reverse']))
echo "var isReverse = true;\n";
else
echo "var isReverse = false;\n";
if (isset($config['syslog']['reverse'])) {
echo "var isReverse = true;\n";
} else {
echo "var isReverse = false;\n";
}
?>
/* Called by the AJAX updater */
......@@ -133,21 +142,33 @@ function format_log_line(row) {
<tr>
<td>
<select name="filterlogentries" class="formfld unknown" id="filterlogentries">
<?php for ($i = 1; $i <= 20; $i++) { ?>
<option value="<?php echo $i;?>" <?php if ($nentries == $i) echo "selected=\"selected\"";?>><?php echo $i;?></option>
<?php } ?>
<?php for ($i = 1; $i <= 20; $i++) {
?>
<option value="<?php echo $i;?>" <?php if ($nentries == $i) {
echo "selected=\"selected\"";
}?>><?php echo $i;?></option>
<?php
} ?>
</select>
</td>
</tr>
<?php
$Include_Act = explode(" ", $nentriesacts);
if ($nentriesinterfaces == "All") $nentriesinterfaces = "";
$Include_Act = explode(" ", $nentriesacts);
if ($nentriesinterfaces == "All") {
$nentriesinterfaces = "";
}
?>
<tr>
<td>
<input id="actpass" name="actpass" type="checkbox" value="Pass" <?php if (in_arrayi('Pass', $Include_Act)) echo "checked=\"checked\""; ?> /> Pass
<input id="actblock" name="actblock" type="checkbox" value="Block" <?php if (in_arrayi('Block', $Include_Act)) echo "checked=\"checked\""; ?> /> Block
<input id="actreject" name="actreject" type="checkbox" value="Reject" <?php if (in_arrayi('Reject', $Include_Act)) echo "checked=\"checked\""; ?> /> Reject
<input id="actpass" name="actpass" type="checkbox" value="Pass" <?php if (in_arrayi('Pass', $Include_Act)) {
echo "checked=\"checked\"";
} ?> /> Pass
<input id="actblock" name="actblock" type="checkbox" value="Block" <?php if (in_arrayi('Block', $Include_Act)) {
echo "checked=\"checked\"";
} ?> /> Block
<input id="actreject" name="actreject" type="checkbox" value="Reject" <?php if (in_arrayi('Reject', $Include_Act)) {
echo "checked=\"checked\"";
} ?> /> Reject
</td>
</tr>
<tr>
......@@ -160,16 +181,18 @@ function format_log_line(row) {
<select id="filterlogentriesinterfaces" name="filterlogentriesinterfaces" class="formselect">
<option value="All">ALL</option>
<?php
$interfaces = get_configured_interface_with_descr();
foreach ($interfaces as $iface => $ifacename):
$interfaces = get_configured_interface_with_descr();
foreach ($interfaces as $iface => $ifacename) :
?>
<option value="<?=$iface;?>" <?php if ($nentriesinterfaces == $iface) echo "selected=\"selected\"";?>>
<?=htmlspecialchars($ifacename);?>
</option>
<option value="<?=$iface;?>" <?php if ($nentriesinterfaces == $iface) {
echo "selected=\"selected\"";
}?>>
<?=htmlspecialchars($ifacename);?>
</option>
<?php
endforeach;
unset($interfaces);
unset($Include_Act);
endforeach;
unset($interfaces);
unset($Include_Act);
?>
</select>
</td>
......@@ -203,31 +226,35 @@ function format_log_line(row) {
</thead>
<tbody id='filter-log-entries'>
<?php
$rowIndex = 0;
foreach ($filterlog as $filterent):
$evenRowClass = $rowIndex % 2 ? " listMReven" : " listMRodd";
$rowIndex++;
?>
$rowIndex = 0;
foreach ($filterlog as $filterent) :
$evenRowClass = $rowIndex % 2 ? " listMReven" : " listMRodd";
$rowIndex++;
?>
<tr class="<?=$evenRowClass?>">
<td class="listMRlr nowrap" align="center">
<a href="#" onclick="javascript:getURL('diag_logs_filter.php?getrulenum=<?php echo "{$filterent['rulenum']},{$filterent['act']}"; ?>', outputrule);">
<span class="<?php echo find_action_image($filterent['act']);?>" alt="<?php echo $filterent['act'];?>" title="<?php echo $filterent['act'];?>" ></span>
</a>
</td>
<td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['time']);?>"><?php echo substr(htmlspecialchars($filterent['time']),0,-3);?></td>
<td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['time']);?>"><?php echo substr(htmlspecialchars($filterent['time']), 0, -3);?></td>
<td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['interface']);?>"><?php echo htmlspecialchars($filterent['interface']);?></td>
<td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['src']);?>">
<a href="#" onclick="javascript:getURL('diag_dns.php?host=<?php echo "{$filterent['srcip']}"; ?>&amp;dialog_output=true', outputrule);" title="<?=gettext("Reverse Resolve with DNS");?>">
<a href="#" onclick="javascript:getURL('diag_dns.php?host=<?php echo "{$filterent['srcip']}";
?>&amp;dialog_output=true', outputrule);" title="<?=gettext("Reverse Resolve with DNS");?>">
<?php echo htmlspecialchars($filterent['srcip']);?></a></td>
<td class="listMRr ellipsis nowrap" title="<?php echo htmlspecialchars($filterent['dst']);?>">
<a href="#" onclick="javascript:getURL('diag_dns.php?host=<?php echo "{$filterent['dstip']}"; ?>&amp;dialog_output=true', outputrule);" title="<?=gettext("Reverse Resolve with DNS");?>">
<a href="#" onclick="javascript:getURL('diag_dns.php?host=<?php echo "{$filterent['dstip']}";
?>&amp;dialog_output=true', outputrule);" title="<?=gettext("Reverse Resolve with DNS");?>">
<?php echo htmlspecialchars($filterent['dstip']);?></a><?php echo ":" . htmlspecialchars($filterent['dstport']);?></td>
<?php
if ($filterent['proto'] == "TCP")
$filterent['proto'] .= ":{$filterent['tcpflags']}";
?>
if ($filterent['proto'] == "TCP") {
$filterent['proto'] .= ":{$filterent['tcpflags']}";
}
?>
</tr>
<?php endforeach; ?>
<?php
endforeach; ?>
<tr style="display:none;"><td></td></tr>
</tbody>
</table>
......
......@@ -32,53 +32,56 @@ require_once("guiconfig.inc");
require_once("openvpn.inc");
/* Handle AJAX */
if($_GET['action']) {
if($_GET['action'] == "kill") {
$port = $_GET['port'];
$remipp = $_GET['remipp'];
if (!empty($port) and !empty($remipp)) {
$retval = kill_client($port, $remipp);
echo htmlentities("|{$port}|{$remipp}|{$retval}|");
} else {
echo gettext("invalid input");
}
exit;
}
if ($_GET['action']) {
if ($_GET['action'] == "kill") {
$port = $_GET['port'];
$remipp = $_GET['remipp'];
if (!empty($port) and !empty($remipp)) {
$retval = kill_client($port, $remipp);
echo htmlentities("|{$port}|{$remipp}|{$retval}|");
} else {
echo gettext("invalid input");
}
exit;
}
}
function kill_client($port, $remipp) {
global $g;
function kill_client($port, $remipp)
{
global $g;
//$tcpsrv = "tcp://127.0.0.1:{$port}";
$tcpsrv = "unix:///var/etc/openvpn/{$port}.sock";
$errval;
$errstr;
//$tcpsrv = "tcp://127.0.0.1:{$port}";
$tcpsrv = "unix:///var/etc/openvpn/{$port}.sock";
$errval;
$errstr;
/* open a tcp connection to the management port of each server */
$fp = @stream_socket_client($tcpsrv, $errval, $errstr, 1);
$killed = -1;
if ($fp) {
stream_set_timeout($fp, 1);
fputs($fp, "kill {$remipp}\n");
while (!feof($fp)) {
$line = fgets($fp, 1024);
/* open a tcp connection to the management port of each server */
$fp = @stream_socket_client($tcpsrv, $errval, $errstr, 1);
$killed = -1;
if ($fp) {
stream_set_timeout($fp, 1);
fputs($fp, "kill {$remipp}\n");
while (!feof($fp)) {
$line = fgets($fp, 1024);
$info = stream_get_meta_data($fp);
if ($info['timed_out'])
break;
$info = stream_get_meta_data($fp);
if ($info['timed_out']) {
break;
}
/* parse header list line */
if (strpos($line, "INFO:") !== false)
continue;
if (strpos($line, "SUCCESS") !== false) {
$killed = 0;
}
break;
}
fclose($fp);
}
return $killed;
/* parse header list line */
if (strpos($line, "INFO:") !== false) {
continue;
}
if (strpos($line, "SUCCESS") !== false) {
$killed = 0;
}
break;
}
fclose($fp);
}
return $killed;
}
$servers = openvpn_get_active_servers();
......@@ -117,7 +120,8 @@ $clients = openvpn_get_active_clients();
}
</script>
<?php foreach ($servers as $server): ?>
<?php foreach ($servers as $server) :
?>
<table class="table table-striped" style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
......@@ -133,10 +137,10 @@ $clients = openvpn_get_active_clients();
<td class="listhdrr">Real/Virtual IP</td>
</tr>
<?php $rowIndex = 0;
foreach ($server['conns'] as $conn):
$evenRowClass = $rowIndex % 2 ? " listMReven" : " listMRodd";
$rowIndex++;
?>
foreach ($server['conns'] as $conn) :
$evenRowClass = $rowIndex % 2 ? " listMReven" : " listMRodd";
$rowIndex++;
?>
<tr name='<?php echo "r:{$server['mgmt']}:{$conn['remote_host']}"; ?>' class="<?=$evenRowClass?>">
<td class="listMRlr">
<?=$conn['common_name'];?>
......@@ -160,7 +164,8 @@ $clients = openvpn_get_active_clients();
</td>
</tr>
<?php endforeach; ?>
<?php
endforeach; ?>
<tfoot>
<tr>
<td colspan="6" class="list" height="12"></td>
......@@ -171,8 +176,10 @@ $clients = openvpn_get_active_clients();
</tr>
</table>
<?php endforeach; ?>
<?php if (!empty($sk_servers)) { ?>
<?php
endforeach; ?>
<?php if (!empty($sk_servers)) {
?>
<table class="table table-striped" style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="6" class="listtopic">
......@@ -186,7 +193,8 @@ $clients = openvpn_get_active_clients();
<td class="listhdrr">Remote/Virtual IP</td>
</tr>
<?php foreach ($sk_servers as $sk_server): ?>
<?php foreach ($sk_servers as $sk_server) :
?>
<tr name='<?php echo "r:{$sk_server['port']}:{$sk_server['remote_host']}"; ?>'>
<td class="listlr">
<?=$sk_server['name'];?>
......@@ -196,15 +204,15 @@ $clients = openvpn_get_active_clients();
</td>
<td rowspan="2" align="center">
<?php
if ($sk_server['status'] == "up") {
/* tunnel is up */
$iconfn = "text-success";
} else {
/* tunnel is down */
$iconfn = "text-danger";
}
echo "<span class='glyphicon glyphicon-transfer ".$iconfn."'></span>";
?>
if ($sk_server['status'] == "up") {
/* tunnel is up */
$iconfn = "text-success";
} else {
/* tunnel is down */
$iconfn = "text-danger";
}
echo "<span class='glyphicon glyphicon-transfer ".$iconfn."'></span>";
?>
</td>
</tr>
<tr name='<?php echo "r:{$sk_server['port']}:{$sk_server['remote_host']}"; ?>'>
......@@ -215,14 +223,16 @@ $clients = openvpn_get_active_clients();
<?=$sk_server['virtual_addr'];?>
</td>
</tr>
<?php endforeach; ?>
<?php
endforeach; ?>
</table>
</tr>
</table>
<?php
} ?>
<?php if (!empty($clients)) { ?>
<?php if (!empty($clients)) {
?>
<table class="table table-striped" style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="6" class="listtopic">
......@@ -236,7 +246,8 @@ $clients = openvpn_get_active_clients();
<td class="listhdrr">Remote/Virtual IP</td>
</tr>
<?php foreach ($clients as $client): ?>
<?php foreach ($clients as $client) :
?>
<tr name='<?php echo "r:{$client['port']}:{$client['remote_host']}"; ?>'>
<td class="listlr">
<?=$client['name'];?>
......@@ -246,15 +257,15 @@ $clients = openvpn_get_active_clients();
</td>
<td rowspan="2" align="center">
<?php
if ($client['status'] == "up") {
/* tunnel is up */
$iconfn = "text-success";
} else {
/* tunnel is down */
$iconfn = "text-danger";
}
echo "<span class='glyphicon glyphicon-transfer ".$iconfn."'></span>";
?>
if ($client['status'] == "up") {
/* tunnel is up */
$iconfn = "text-success";
} else {
/* tunnel is down */
$iconfn = "text-danger";
}
echo "<span class='glyphicon glyphicon-transfer ".$iconfn."'></span>";
?>
</td>
</tr>
<tr name='<?php echo "r:{$client['port']}:{$client['remote_host']}"; ?>'>
......@@ -265,7 +276,8 @@ $clients = openvpn_get_active_clients();
<?=$client['virtual_addr'];?>
</td>
</tr>
<?php endforeach; ?>
<?php
endforeach; ?>
</table>
</tr>
</table>
......@@ -274,10 +286,9 @@ $clients = openvpn_get_active_clients();
}
if ($DisplayNote) {
echo "<br /><b>NOTE:</b> You need to bind each OpenVPN client to enable its management daemon: use 'Local port' setting in the OpenVPN client screen";
echo "<br /><b>NOTE:</b> You need to bind each OpenVPN client to enable its management daemon: use 'Local port' setting in the OpenVPN client screen";
}
if ((empty($clients)) && (empty($servers)) && (empty($sk_servers))) {
echo "No OpenVPN instance defined";
echo "No OpenVPN instance defined";
}
?>
......@@ -32,39 +32,40 @@ require_once("guiconfig.inc");
require_once("pfsense-utils.inc");
require_once("functions.inc");
if($_GET['getpic']=="true") {
$pic_type_s = explode(".", $config['widgets']['picturewidget_filename']);
$pic_type = $pic_type_s[1];
if($config['widgets']['picturewidget'])
$data = base64_decode($config['widgets']['picturewidget']);
header("Content-Disposition: inline; filename=\"{$config['widgets']['picturewidget_filename']}\"");
header("Content-Type: image/{$pic_type}");
header("Content-Length: " . strlen($data));
echo $data;
exit;
if ($_GET['getpic']=="true") {
$pic_type_s = explode(".", $config['widgets']['picturewidget_filename']);
$pic_type = $pic_type_s[1];
if ($config['widgets']['picturewidget']) {
$data = base64_decode($config['widgets']['picturewidget']);
}
header("Content-Disposition: inline; filename=\"{$config['widgets']['picturewidget_filename']}\"");
header("Content-Type: image/{$pic_type}");
header("Content-Length: " . strlen($data));
echo $data;
exit;
}
if($_POST) {
if (is_uploaded_file($_FILES['pictfile']['tmp_name'])) {
/* read the file contents */
$fd_pic = fopen($_FILES['pictfile']['tmp_name'], "rb");
while ( ($buf=fread( $fd_pic, 8192 )) != '' ) {
// Here, $buf is guaranteed to contain data
$data .= $buf;
}
fclose($fd_pic);
if(!$data) {
log_error("Warning, could not read file " . $_FILES['pictfile']['tmp_name']);
die("Could not read temporary file");
} else {
$picname = basename($_FILES['uploadedfile']['name']);
$config['widgets']['picturewidget'] = base64_encode($data);
$config['widgets']['picturewidget_filename'] = $_FILES['pictfile']['name'];
write_config("Picture widget saved via Dashboard.");
header("Location: /index.php");
exit;
}
}
if ($_POST) {
if (is_uploaded_file($_FILES['pictfile']['tmp_name'])) {
/* read the file contents */
$fd_pic = fopen($_FILES['pictfile']['tmp_name'], "rb");
while (($buf=fread($fd_pic, 8192)) != '') {
// Here, $buf is guaranteed to contain data
$data .= $buf;
}
fclose($fd_pic);
if (!$data) {
log_error("Warning, could not read file " . $_FILES['pictfile']['tmp_name']);
die("Could not read temporary file");
} else {
$picname = basename($_FILES['uploadedfile']['name']);
$config['widgets']['picturewidget'] = base64_encode($data);
$config['widgets']['picturewidget_filename'] = $_FILES['pictfile']['name'];
write_config("Picture widget saved via Dashboard.");
header("Location: /index.php");
exit;
}
}
}
?>
......@@ -89,13 +90,15 @@ if($_POST) {
</div>
<!-- hide picture if none is defined in the configuration -->
<?php if ( $config['widgets']['picturewidget_filename'] != "" ): ?>
<?php if ($config['widgets']['picturewidget_filename'] != "") :
?>
<div id="picture-widgets" style="padding: 5px">
<a href='/widgets/widgets/picture.widget.php?getpic=true' target='_blank'>
<img border="0" width="100%" height="100%" src="/widgets/widgets/picture.widget.php?getpic=true" alt="picture" />
</a>
</div>
<?php endif ?>
<?php
endif ?>
<!-- needed to show the settings widget icon -->
<script type="text/javascript">
//<![CDATA[
......
......@@ -32,47 +32,54 @@ require_once("guiconfig.inc");
require_once("pfsense-utils.inc");
require_once("functions.inc");
if($_POST['rssfeed']) {
$config['widgets']['rssfeed'] = str_replace("\n", ",", htmlspecialchars($_POST['rssfeed'], ENT_QUOTES | ENT_HTML401));
$config['widgets']['rssmaxitems'] = str_replace("\n", ",", htmlspecialchars($_POST['rssmaxitems'], ENT_QUOTES | ENT_HTML401));
$config['widgets']['rsswidgetheight'] = htmlspecialchars($_POST['rsswidgetheight'], ENT_QUOTES | ENT_HTML401);
$config['widgets']['rsswidgettextlength'] = htmlspecialchars($_POST['rsswidgettextlength'], ENT_QUOTES | ENT_HTML401);
write_config("Saved RSS Widget feed via Dashboard");
header("Location: /");
if ($_POST['rssfeed']) {
$config['widgets']['rssfeed'] = str_replace("\n", ",", htmlspecialchars($_POST['rssfeed'], ENT_QUOTES | ENT_HTML401));
$config['widgets']['rssmaxitems'] = str_replace("\n", ",", htmlspecialchars($_POST['rssmaxitems'], ENT_QUOTES | ENT_HTML401));
$config['widgets']['rsswidgetheight'] = htmlspecialchars($_POST['rsswidgetheight'], ENT_QUOTES | ENT_HTML401);
$config['widgets']['rsswidgettextlength'] = htmlspecialchars($_POST['rsswidgettextlength'], ENT_QUOTES | ENT_HTML401);
write_config("Saved RSS Widget feed via Dashboard");
header("Location: /");
}
// Use saved feed and max items
if($config['widgets']['rssfeed'])
$rss_feed_s = explode(",", $config['widgets']['rssfeed']);
if ($config['widgets']['rssfeed']) {
$rss_feed_s = explode(",", $config['widgets']['rssfeed']);
}
if($config['widgets']['rssmaxitems'])
$max_items = $config['widgets']['rssmaxitems'];
if ($config['widgets']['rssmaxitems']) {
$max_items = $config['widgets']['rssmaxitems'];
}
if(is_numeric($config['widgets']['rsswidgetheight']))
$rsswidgetheight = $config['widgets']['rsswidgetheight'];
if (is_numeric($config['widgets']['rsswidgetheight'])) {
$rsswidgetheight = $config['widgets']['rsswidgetheight'];
}
if(is_numeric($config['widgets']['rsswidgettextlength']))
$rsswidgettextlength = $config['widgets']['rsswidgettextlength'];
if (is_numeric($config['widgets']['rsswidgettextlength'])) {
$rsswidgettextlength = $config['widgets']['rsswidgettextlength'];
}
// Set a default feed if none exists
if(!$rss_feed_s) {
$rss_feed_s = "https://opnsense.org/feed/";
$config['widgets']['rssfeed'] = "https://opnsense.org/feed/";
if (!$rss_feed_s) {
$rss_feed_s = "https://opnsense.org/feed/";
$config['widgets']['rssfeed'] = "https://opnsense.org/feed/";
}
if(!$max_items)
$max_items = 10;
if(!$rsswidgetheight)
$rsswidgetheight = 300;
if (!$max_items) {
$max_items = 10;
}
if(!$rsswidgettextlength)
$rsswidgettextlength = 140; // oh twitter, how do we love thee?
if (!$rsswidgetheight) {
$rsswidgetheight = 300;
}
if($config['widgets']['rssfeed'])
$textarea_txt = str_replace(",", "\n", $config['widgets']['rssfeed']);
else
$textarea_txt = "";
if (!$rsswidgettextlength) {
$rsswidgettextlength = 140; // oh twitter, how do we love thee?
}
if ($config['widgets']['rssfeed']) {
$textarea_txt = str_replace(",", "\n", $config['widgets']['rssfeed']);
} else {
$textarea_txt = "";
}
?>
......@@ -94,9 +101,10 @@ else
<select name='rssmaxitems' id='rssmaxitems'>
<option value='<?= $max_items ?>'><?= $max_items ?></option>
<?php
for($x=100; $x<5100; $x=$x+100)
echo "<option value='{$x}'>{$x}</option>\n";
?>
for ($x=100; $x<5100; $x=$x+100) {
echo "<option value='{$x}'>{$x}</option>\n";
}
?>
</select>
</td>
</tr>
......@@ -108,9 +116,10 @@ else
<select name='rsswidgetheight' id='rsswidgetheight'>
<option value='<?= $rsswidgetheight ?>'><?= $rsswidgetheight ?>px</option>
<?php
for($x=100; $x<5100; $x=$x+100)
echo "<option value='{$x}'>{$x}px</option>\n";
?>
for ($x=100; $x<5100; $x=$x+100) {
echo "<option value='{$x}'>{$x}px</option>\n";
}
?>
</select>
</td>
</tr>
......@@ -122,9 +131,10 @@ else
<select name='rsswidgettextlength' id='rsswidgettextlength'>
<option value='<?= $rsswidgettextlength ?>'><?= $rsswidgettextlength ?></option>
<?php
for($x=10; $x<5100; $x=$x+10)
echo "<option value='{$x}'>{$x}</option>\n";
?>
for ($x=10; $x<5100; $x=$x+10) {
echo "<option value='{$x}'>{$x}</option>\n";
}
?>
</select>
</td>
</tr>
......@@ -139,38 +149,41 @@ else
<div id="rss-widgets" style="padding: 5px; height: <?=$rsswidgetheight?>px; overflow:scroll;">
<?php
if(!is_dir("/tmp/simplepie")) {
mkdir("/tmp/simplepie");
mkdir("/tmp/simplepie/cache");
}
exec("chmod a+rw /tmp/simplepie/.");
exec("chmod a+rw /tmp/simplepie/cache/.");
require_once("simplepie/simplepie.inc");
function textLimit($string, $length, $replacer = '...') {
if(strlen($string) > $length)
return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer;
return $string;
}
$feed = new SimplePie();
$feed->set_cache_location("/tmp/simplepie/");
$feed->set_feed_url($rss_feed_s);
$feed->init();
$feed->set_output_encoding('latin-1');
$feed->handle_content_type();
$counter = 1;
foreach($feed->get_items() as $item) {
$feed = $item->get_feed();
$feed->strip_htmltags();
echo "<a target='blank' href='" . $item->get_permalink() . "'>" . $item->get_title() . "</a><br />";
$content = $item->get_content();
$content = strip_tags($content);
echo textLimit($content, $rsswidgettextlength) . "<br />";
echo "Source: <a target='_blank' href='" . $item->get_permalink() . "'>".$feed->get_title()."</a><br />";
$counter++;
if($counter > $max_items)
break;
echo "<hr/>";
}
if (!is_dir("/tmp/simplepie")) {
mkdir("/tmp/simplepie");
mkdir("/tmp/simplepie/cache");
}
exec("chmod a+rw /tmp/simplepie/.");
exec("chmod a+rw /tmp/simplepie/cache/.");
require_once("simplepie/simplepie.inc");
function textLimit($string, $length, $replacer = '...')
{
if (strlen($string) > $length) {
return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer;
}
return $string;
}
$feed = new SimplePie();
$feed->set_cache_location("/tmp/simplepie/");
$feed->set_feed_url($rss_feed_s);
$feed->init();
$feed->set_output_encoding('latin-1');
$feed->handle_content_type();
$counter = 1;
foreach ($feed->get_items() as $item) {
$feed = $item->get_feed();
$feed->strip_htmltags();
echo "<a target='blank' href='" . $item->get_permalink() . "'>" . $item->get_title() . "</a><br />";
$content = $item->get_content();
$content = strip_tags($content);
echo textLimit($content, $rsswidgettextlength) . "<br />";
echo "Source: <a target='_blank' href='" . $item->get_permalink() . "'>".$feed->get_title()."</a><br />";
$counter++;
if ($counter > $max_items) {
break;
}
echo "<hr/>";
}
?>
</div>
......
......@@ -39,10 +39,10 @@ require_once("widgets/include/services_status.inc");
$services = get_services();
if(isset($_POST['servicestatusfilter'])) {
$config['widgets']['servicestatusfilter'] = htmlspecialchars($_POST['servicestatusfilter'], ENT_QUOTES | ENT_HTML401);
write_config("Saved Service Status Filter via Dashboard");
header("Location: ../../index.php");
if (isset($_POST['servicestatusfilter'])) {
$config['widgets']['servicestatusfilter'] = htmlspecialchars($_POST['servicestatusfilter'], ENT_QUOTES | ENT_HTML401);
write_config("Saved Service Status Filter via Dashboard");
header("Location: ../../index.php");
}
?>
<input type="hidden" id="services_status-config" name="services_status-config" value="" />
......@@ -65,25 +65,26 @@ if(isset($_POST['servicestatusfilter'])) {
$skipservices = explode(",", $config['widgets']['servicestatusfilter']);
if (count($services) > 0) {
uasort($services, "service_name_compare");
foreach($services as $service) {
if(!$service['name'] || in_array($service['name'], $skipservices)) {
continue;
}
$service_desc = explode(".",$service['description']);
echo "<tr><td class=\"listlr\">" . $service['name'] . "</td>\n";
echo "<td class=\"listr\">" . $service_desc[0] . "</td>\n";
// if service is running then listr else listbg
$bgclass = null;
if (get_service_status($service))
$bgclass = "listr";
else
$bgclass = "listbg";
echo "<td class=\"" . $bgclass . "\" align=\"center\">" . str_replace('btn ','btn btn-xs ', get_service_status_icon($service, false, true)) . "</td>\n";
echo "<td valign=\"middle\" class=\"list nowrap\">" . str_replace('btn ','btn btn-xs ', get_service_control_links($service)) . "</td></tr>\n";
}
uasort($services, "service_name_compare");
foreach ($services as $service) {
if (!$service['name'] || in_array($service['name'], $skipservices)) {
continue;
}
$service_desc = explode(".", $service['description']);
echo "<tr><td class=\"listlr\">" . $service['name'] . "</td>\n";
echo "<td class=\"listr\">" . $service_desc[0] . "</td>\n";
// if service is running then listr else listbg
$bgclass = null;
if (get_service_status($service)) {
$bgclass = "listr";
} else {
$bgclass = "listbg";
}
echo "<td class=\"" . $bgclass . "\" align=\"center\">" . str_replace('btn ', 'btn btn-xs ', get_service_status_icon($service, false, true)) . "</td>\n";
echo "<td valign=\"middle\" class=\"list nowrap\">" . str_replace('btn ', 'btn btn-xs ', get_service_control_links($service)) . "</td></tr>\n";
}
} else {
echo "<tr><td colspan=\"3\" align=\"center\">" . gettext("No services found") . " . </td></tr>\n";
echo "<tr><td colspan=\"3\" align=\"center\">" . gettext("No services found") . " . </td></tr>\n";
}
?>
</table>
......
......@@ -46,31 +46,33 @@ $devs = array();
## Get all adX, daX, and adaX (IDE, SCSI, and AHCI) devices currently installed
exec("ls /dev | grep '^\(ad\|da\|ada\)[0-9]\{1,2\}$'", $devs); ## From SMART status page
if(count($devs) > 0) {
foreach($devs as $dev) { ## for each found drive do
$dev_ident = exec("diskinfo -v /dev/$dev | grep ident | awk '{print $1}'"); ## get identifier from drive
$dev_state = trim(exec("smartctl -H /dev/$dev | awk -F: '/^SMART overall-health self-assessment test result/ {print $2;exit}
if (count($devs) > 0) {
foreach ($devs as $dev) {
## for each found drive do
$dev_ident = exec("diskinfo -v /dev/$dev | grep ident | awk '{print $1}'"); ## get identifier from drive
$dev_state = trim(exec("smartctl -H /dev/$dev | awk -F: '/^SMART overall-health self-assessment test result/ {print $2;exit}
/^SMART Health Status/ {print $2;exit}'")); ## get SMART state from drive
switch ($dev_state) {
case "PASSED":
case "OK":
$color = "#90EE90";
break;
case "":
$dev_state = "Unknown";
$color = "#C0B788";
break;
default:
$color = "#F08080";
break;
}
switch ($dev_state) {
case "PASSED":
case "OK":
$color = "#90EE90";
break;
case "":
$dev_state = "Unknown";
$color = "#C0B788";
break;
default:
$color = "#F08080";
break;
}
?>
<tr>
<td class="listlr"><?php echo $dev; ?></td>
<td class="listr" align="center"><?php echo $dev_ident; ?></td>
<td class="listr" align="center"><span style="background-color:<?php echo $color; ?>">&nbsp;<?php echo $dev_state; ?>&nbsp;</span></td>
</tr>
<?php }
<?php
}
}
?>
</table>
......@@ -62,44 +62,45 @@ const MAX_THRESHOLD_VALUE = 100; //deg C
//=========================================================================
//save widget config settings on POST
if ($_POST) {
saveThresholdSettings($config, $_POST, "thermal_sensors_widget_zone_warning_threshold", "thermal_sensors_widget_zone_critical_threshold");
saveThresholdSettings($config, $_POST, "thermal_sensors_widget_core_warning_threshold", "thermal_sensors_widget_core_critical_threshold");
//handle checkboxes separately
saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_show_raw_output");
saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_show_full_sensor_name");
saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_pulsate_warning");
saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_pulsate_critical");
//write settings to config file
write_config("Saved thermal_sensors_widget settings via Dashboard.");
header("Location: ../../index.php");
saveThresholdSettings($config, $_POST, "thermal_sensors_widget_zone_warning_threshold", "thermal_sensors_widget_zone_critical_threshold");
saveThresholdSettings($config, $_POST, "thermal_sensors_widget_core_warning_threshold", "thermal_sensors_widget_core_critical_threshold");
//handle checkboxes separately
saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_show_raw_output");
saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_show_full_sensor_name");
saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_pulsate_warning");
saveGraphDisplaySettings($config, $_POST, "thermal_sensors_widget_pulsate_critical");
//write settings to config file
write_config("Saved thermal_sensors_widget settings via Dashboard.");
header("Location: ../../index.php");
}
function saveThresholdSettings(&$configArray, &$postArray, $warningValueKey, $criticalValueKey) {
$warningValue = 0;
$criticalValue = 0;
if (isset($postArray[$warningValueKey])) {
$warningValue = (int) $postArray[$warningValueKey];
}
if (isset($postArray[$criticalValueKey])) {
$criticalValue = (int) $postArray[$criticalValueKey];
}
if (
($warningValue >= MIN_THRESHOLD_VALUE && $warningValue <= MAX_THRESHOLD_VALUE) &&
($criticalValue >= MIN_THRESHOLD_VALUE && $criticalValue <= MAX_THRESHOLD_VALUE) &&
($warningValue < $criticalValue)
) {
//all validated ok, save to config array
$configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$warningValueKey] = $warningValue;
$configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$criticalValueKey] = $criticalValue;
}
function saveThresholdSettings(&$configArray, &$postArray, $warningValueKey, $criticalValueKey)
{
$warningValue = 0;
$criticalValue = 0;
if (isset($postArray[$warningValueKey])) {
$warningValue = (int) $postArray[$warningValueKey];
}
if (isset($postArray[$criticalValueKey])) {
$criticalValue = (int) $postArray[$criticalValueKey];
}
if (($warningValue >= MIN_THRESHOLD_VALUE && $warningValue <= MAX_THRESHOLD_VALUE) &&
($criticalValue >= MIN_THRESHOLD_VALUE && $criticalValue <= MAX_THRESHOLD_VALUE) &&
($warningValue < $criticalValue)
) {
//all validated ok, save to config array
$configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$warningValueKey] = $warningValue;
$configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$criticalValueKey] = $criticalValue;
}
}
function saveGraphDisplaySettings(&$configArray, &$postArray, $valueKey) {
function saveGraphDisplaySettings(&$configArray, &$postArray, $valueKey)
{
$configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey] = isset($postArray[$valueKey]) ? 1 : 0;
}
......@@ -116,32 +117,34 @@ $thermal_sensors_widget_showFullSensorName = getBoolValueFromConfig($config, "th
$thermal_sensors_widget_pulsateWarning = getBoolValueFromConfig($config, "thermal_sensors_widget_pulsate_warning", true);
$thermal_sensors_widget_pulsateCritical = getBoolValueFromConfig($config, "thermal_sensors_widget_pulsate_critical", true);
function getThresholdValueFromConfig(&$configArray, $valueKey, $defaultValue) {
function getThresholdValueFromConfig(&$configArray, $valueKey, $defaultValue)
{
$thresholdValue = $defaultValue;
$thresholdValue = $defaultValue;
if (isset($configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey])) {
$thresholdValue = (int) $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey];
}
if (isset($configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey])) {
$thresholdValue = (int) $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey];
}
if ($thresholdValue < MIN_THRESHOLD_VALUE || $thresholdValue > MAX_THRESHOLD_VALUE) {
//set to default if not in allowed range
$thresholdValue = $defaultValue;
}
return $thresholdValue;
if ($thresholdValue < MIN_THRESHOLD_VALUE || $thresholdValue > MAX_THRESHOLD_VALUE) {
//set to default if not in allowed range
$thresholdValue = $defaultValue;
}
return $thresholdValue;
}
function getBoolValueFromConfig(&$configArray, $valueKey, $defaultValue) {
function getBoolValueFromConfig(&$configArray, $valueKey, $defaultValue)
{
$boolValue = false;
$boolValue = false;
if (isset($configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey])) {
$boolValue = (bool) $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey];
} else {
//set to default if not in allowed range
$boolValue = $defaultValue;
}
return $boolValue;
if (isset($configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey])) {
$boolValue = (bool) $configArray[WIDGETS_CONFIG_SECTION_KEY][THERMAL_SENSORS_WIDGET_SUBSECTION_KEY][$valueKey];
} else {
//set to default if not in allowed range
$boolValue = $defaultValue;
}
return $boolValue;
}
//=========================================================================
......@@ -196,7 +199,8 @@ function getBoolValueFromConfig(&$configArray, $valueKey, $defaultValue) {
<input type="checkbox"
id="thermal_sensors_widget_show_raw_output"
name="thermal_sensors_widget_show_raw_output"
value="<?= $thermal_sensors_widget_showRawOutput; ?>" <?= ($thermal_sensors_widget_showRawOutput) ? " checked='checked'" : ""; ?> />
value="<?= $thermal_sensors_widget_showRawOutput;
?>" <?= ($thermal_sensors_widget_showRawOutput) ? " checked='checked'" : ""; ?> />
</td>
</tr>
<tr>
......@@ -214,7 +218,8 @@ function getBoolValueFromConfig(&$configArray, $valueKey, $defaultValue) {
<input type="checkbox"
id="thermal_sensors_widget_show_full_sensor_name"
name="thermal_sensors_widget_show_full_sensor_name"
value="<?= $thermal_sensors_widget_showFullSensorName; ?>" <?= ($thermal_sensors_widget_showFullSensorName) ? " checked='checked'" : ""; ?> />
value="<?= $thermal_sensors_widget_showFullSensorName;
?>" <?= ($thermal_sensors_widget_showFullSensorName) ? " checked='checked'" : ""; ?> />
</td>
</tr>
<tr>
......@@ -232,7 +237,8 @@ function getBoolValueFromConfig(&$configArray, $valueKey, $defaultValue) {
<input type="checkbox"
id="thermal_sensors_widget_pulsate_warning"
name="thermal_sensors_widget_pulsate_warning"
value="<?= $thermal_sensors_widget_pulsateWarning; ?>" <?= ($thermal_sensors_widget_pulsateWarning) ? " checked='checked'" : ""; ?> />
value="<?= $thermal_sensors_widget_pulsateWarning;
?>" <?= ($thermal_sensors_widget_pulsateWarning) ? " checked='checked'" : ""; ?> />
</td>
</tr>
<tr>
......@@ -250,7 +256,8 @@ function getBoolValueFromConfig(&$configArray, $valueKey, $defaultValue) {
<input type="checkbox"
id="thermal_sensors_widget_pulsate_critical"
name="thermal_sensors_widget_pulsate_critical"
value="<?= $thermal_sensors_widget_pulsateCritical; ?>" <?= ($thermal_sensors_widget_pulsateCritical) ? " checked='checked'" : ""; ?> />
value="<?= $thermal_sensors_widget_pulsateCritical;
?>" <?= ($thermal_sensors_widget_pulsateCritical) ? " checked='checked'" : ""; ?> />
</td>
</tr>
<tr>
......
......@@ -38,55 +38,55 @@ require_once("functions.inc");
$first_time = false;
if (!is_array($config["widgets"]["trafficgraphs"])) {
$first_time = true;
$config["widgets"]["trafficgraphs"] = array();
$first_time = true;
$config["widgets"]["trafficgraphs"] = array();
}
$a_config = &$config["widgets"]["trafficgraphs"];
if (!is_array($a_config["shown"])) {
$a_config["shown"] = array();
$a_config["shown"] = array();
}
if (!is_array($a_config["shown"]["item"])) {
$a_config["shown"]["item"] = array();
$a_config["shown"]["item"] = array();
}
$ifdescrs = get_configured_interface_with_descr();
if (isset($config['ipsec']['enable']))
$ifdescrs['enc0'] = "IPsec";
if (isset($config['ipsec']['enable'])) {
$ifdescrs['enc0'] = "IPsec";
}
if ($_POST) {
if (isset($_POST["refreshinterval"])) {
$a_config["refreshinterval"] = $_POST["refreshinterval"];
}
if (isset($_POST["scale_type"])) {
$a_config["scale_type"] = $_POST["scale_type"];
}
$a_config["shown"]["item"] = array();
foreach ($ifdescrs as $ifname => $ifdescr) {
$state = $_POST["shown"][$ifname];
if ($state === "show") {
$a_config["shown"]["item"][] = $ifname;
}
}
write_config("Updated traffic graph settings via dashboard.");
header("Location: /");
exit(0);
if (isset($_POST["refreshinterval"])) {
$a_config["refreshinterval"] = $_POST["refreshinterval"];
}
if (isset($_POST["scale_type"])) {
$a_config["scale_type"] = $_POST["scale_type"];
}
$a_config["shown"]["item"] = array();
foreach ($ifdescrs as $ifname => $ifdescr) {
$state = $_POST["shown"][$ifname];
if ($state === "show") {
$a_config["shown"]["item"][] = $ifname;
}
}
write_config("Updated traffic graph settings via dashboard.");
header("Location: /");
exit(0);
}
$shown = array();
foreach ($a_config["shown"]["item"] as $if) {
$shown[$if] = true;
$shown[$if] = true;
}
if ($first_time) {
$keys = array_keys($ifdescrs);
$shown[$keys[0]] = true;
$keys = array_keys($ifdescrs);
$shown[$keys[0]] = true;
}
if (isset($a_config["refreshinterval"])) {
$refreshinterval = $a_config["refreshinterval"];
$refreshinterval = $a_config["refreshinterval"];
} else {
$refreshinterval = 10;
$refreshinterval = 10;
}
if (isset($a_config["scale_type"])) {
......@@ -100,9 +100,11 @@ if (isset($a_config["scale_type"])) {
<div id="traffic_graphs-settings" class="widgetconfigdiv" style="display:none;">
<form action="/widgets/widgets/traffic_graphs.widget.php" method="post" name="iform" id="iform">
<?php foreach ($ifdescrs as $ifname => $ifdescr) { ?>
<?php foreach ($ifdescrs as $ifname => $ifdescr) {
?>
<input type="hidden" name="shown[<?= $ifname ?>]" value="<?= $shown[$ifname] ? "show" : "hide" ?>" />
<?php } ?>
<?php
} ?>
<table class="table table-striped">
<tbody>
......@@ -113,20 +115,19 @@ if (isset($a_config["scale_type"])) {
</td>
</tr>
<?php
$scale_type_up="checked=\"checked\"";
$scale_type_follow="";
if (isset($config["widgets"]["trafficgraphs"]["scale_type"])) {
$selected_radio = $config["widgets"]["trafficgraphs"]["scale_type"];
if ($selected_radio == "up") {
$scale_type_up = "checked=\"checked\"";
$scale_type_follow="";
}
else if ($selected_radio == "follow") {
$scale_type_up="";
$scale_type_follow = "checked=\"checked\"";
}
}
?>
$scale_type_up="checked=\"checked\"";
$scale_type_follow="";
if (isset($config["widgets"]["trafficgraphs"]["scale_type"])) {
$selected_radio = $config["widgets"]["trafficgraphs"]["scale_type"];
if ($selected_radio == "up") {
$scale_type_up = "checked=\"checked\"";
$scale_type_follow="";
} elseif ($selected_radio == "follow") {
$scale_type_up="";
$scale_type_follow = "checked=\"checked\"";
}
}
?>
<tr>
<td>
<input name="scale_type" type="radio" id="scale_type_up" value="up" <?php echo $scale_type_up; ?> /> <?php echo gettext('Scale up')?>
......@@ -137,9 +138,13 @@ if (isset($a_config["scale_type"])) {
<input name="scale_type" type="radio" id="scale_type_follow" value="follow" <?php echo $scale_type_follow; ?> /> <?php echo gettext('Scale follow')?><br /><br />
Refresh Interval:
<select name="refreshinterval" class="formfld" id="refreshinterval" >
<?php for ($i = 1; $i <= 10; $i += 1) { ?>
<option value="<?= $i ?>" <?php if ($refreshinterval == $i) echo "selected=\"selected\"";?>><?= $i ?></option>
<?php } ?>
<?php for ($i = 1; $i <= 10; $i += 1) {
?>
<option value="<?= $i ?>" <?php if ($refreshinterval == $i) {
echo "selected=\"selected\"";
}?>><?= $i ?></option>
<?php
} ?>
</select>&nbsp; Seconds<br />&nbsp; &nbsp; &nbsp; <b>Note:</b> changing this setting will increase CPU utilization<br /><br />
</td>
</tr>
......@@ -164,40 +169,47 @@ if (isset($a_config["scale_type"])) {
<?php
foreach ($ifdescrs as $ifname => $ifdescr) {
$ifinfo = get_interface_info($ifname);
if ($shown[$ifname]) {
$mingraphbutton = "inline";
$showgraphbutton = "none";
$graphdisplay = "inline";
$interfacevalue = "show";
} else {
$mingraphbutton = "none";
$showgraphbutton = "inline";
$graphdisplay = "none";
$interfacevalue = "hide";
}
if ($ifinfo['status'] != "down") { ?>
$ifinfo = get_interface_info($ifname);
if ($shown[$ifname]) {
$mingraphbutton = "inline";
$showgraphbutton = "none";
$graphdisplay = "inline";
$interfacevalue = "show";
} else {
$mingraphbutton = "none";
$showgraphbutton = "inline";
$graphdisplay = "none";
$interfacevalue = "hide";
}
if ($ifinfo['status'] != "down") {
?>
<div id="<?=$ifname;?>trafficdiv" style="padding: 5px">
<div id="<?=$ifname;?>topic" class="widgetsubheader">
<div style="float:left;width:49%">
<span onclick="location.href='/status_graph.php?if=<?=$ifname;?>'" style="cursor:pointer">Current <?=$ifdescr;?> Traffic</span>
<span onclick="location.href='/status_graph.php?if=<?=$ifname;
?>'" style="cursor:pointer">Current <?=$ifdescr;?> Traffic</span>
</div>
<div align="right" style="float:right;width:49%">
<div id="<?=$ifname;?>graphdiv-min" onclick='return trafficminimizeDiv("<?= $ifname ?>", true);'
style="display:<?php echo $mingraphbutton;?>; cursor:pointer" ><span class="glyphicon glyphicon-minus" alt="Minimize <?=$ifname;?> traffic graph" /></span></div>
style="display:<?php echo $mingraphbutton;
?>; cursor:pointer" ><span class="glyphicon glyphicon-minus" alt="Minimize <?=$ifname;?> traffic graph" /></span></div>
<div id="<?=$ifname;?>graphdiv-open" onclick='return trafficshowDiv("<?= $ifname ?>", true);'
style="display:<?php echo $showgraphbutton;?>; cursor:pointer" ><span class="glyphicon glyphicon-plus" alt="Show <?=$ifname;?> traffic graph" /></span></div>
style="display:<?php echo $showgraphbutton;
?>; cursor:pointer" ><span class="glyphicon glyphicon-plus" alt="Show <?=$ifname;?> traffic graph" /></span></div>
</div>
<div style="clear:both;"></div>
</div>
<div id="<?=$ifname;?>graphdiv" style="display:<?php echo $graphdisplay;?>">
<object data="graph.php?ifnum=<?=$ifname;?>&amp;ifname=<?=rawurlencode($ifdescr);?>&amp;timeint=<?=$refreshinterval;?>&amp;initdelay=<?=($graphcounter+1) * 2;?>" height="100%" width="100%">
<object data="graph.php?ifnum=<?=$ifname;
?>&amp;ifname=<?=rawurlencode($ifdescr);
?>&amp;timeint=<?=$refreshinterval;
?>&amp;initdelay=<?=($graphcounter+1) * 2;?>" height="100%" width="100%">
<param name="id" value="graph" />
<param name="type" value="image/svg+xml" />
<param name="pluginspage" value="http://www.adobe.com/svg/viewer/install/auto" />
</object>
</div>
</div>
<?php }
<?php
}
}
?>
......@@ -31,47 +31,48 @@ $nocsrf = true;
require_once("guiconfig.inc");
require_once("widgets/include/wake_on_lan.inc");
if (is_array($config['wol']['wolentry']))
$wolcomputers = $config['wol']['wolentry'];
else
$wolcomputers = array();
if (is_array($config['wol']['wolentry'])) {
$wolcomputers = $config['wol']['wolentry'];
} else {
$wolcomputers = array();
}
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="wol status">
<tr>
<?php
echo '<td class="widgetsubheader" align="center">' . gettext("Computer / Device") . '</td>';
echo '<td class="widgetsubheader" align="center">' . gettext("Interface") . '</td>';
echo '<td class="widgetsubheader" align="center">' . gettext("Status") . '</td>';
?>
echo '<td class="widgetsubheader" align="center">' . gettext("Computer / Device") . '</td>';
echo '<td class="widgetsubheader" align="center">' . gettext("Interface") . '</td>';
echo '<td class="widgetsubheader" align="center">' . gettext("Status") . '</td>';
?>
<td class="widgetsubheader">&nbsp;</td>
</tr>
<?php
if (count($wolcomputers) > 0) {
foreach($wolcomputers as $wolent) {
echo '<tr><td class="listlr">' . $wolent['descr'] . '<br />' . $wolent['mac'] . '</td>' . "\n";
echo '<td class="listr">' . convert_friendly_interface_to_friendly_descr($wolent['interface']) . '</td>' . "\n";
foreach ($wolcomputers as $wolent) {
echo '<tr><td class="listlr">' . $wolent['descr'] . '<br />' . $wolent['mac'] . '</td>' . "\n";
echo '<td class="listr">' . convert_friendly_interface_to_friendly_descr($wolent['interface']) . '</td>' . "\n";
$is_active = exec("/usr/sbin/arp -an |/usr/bin/grep {$wolent['mac']}| /usr/bin/wc -l|/usr/bin/awk '{print $1;}'");
if($is_active == 1) {
echo '<td class="listr" align="center">' . "\n";
echo "<span class=\"glyphicon glyphicon-play text-success\" alt=\"pass\" ></span> " . gettext("Online") . "</td>\n";
} else {
echo '<td class="listbg" align="center">' . "\n";
echo "<span class=\"glyphicon glyphicon-remove text-danger\" alt=\"block\" ></span> " . gettext("Offline") . "</td>\n";
}
echo '<td valign="middle" class="list nowrap">';
/*if($is_active) { */
/* Will always show wake-up button even if the code thinks it is awake */
/* } else { */
echo "<a href='services_wol.php?mac={$wolent['mac']}&amp;if={$wolent['interface']}'> ";
echo "<span class='glyphicon glyphicon-flash' title='" . gettext("Wake Up") . "' border='0' alt='wol' ></span></a>\n";
/* } */
echo "</td></tr>\n";
}
$is_active = exec("/usr/sbin/arp -an |/usr/bin/grep {$wolent['mac']}| /usr/bin/wc -l|/usr/bin/awk '{print $1;}'");
if ($is_active == 1) {
echo '<td class="listr" align="center">' . "\n";
echo "<span class=\"glyphicon glyphicon-play text-success\" alt=\"pass\" ></span> " . gettext("Online") . "</td>\n";
} else {
echo '<td class="listbg" align="center">' . "\n";
echo "<span class=\"glyphicon glyphicon-remove text-danger\" alt=\"block\" ></span> " . gettext("Offline") . "</td>\n";
}
echo '<td valign="middle" class="list nowrap">';
/*if($is_active) { */
/* Will always show wake-up button even if the code thinks it is awake */
/* } else { */
echo "<a href='services_wol.php?mac={$wolent['mac']}&amp;if={$wolent['interface']}'> ";
echo "<span class='glyphicon glyphicon-flash' title='" . gettext("Wake Up") . "' border='0' alt='wol' ></span></a>\n";
/* } */
echo "</td></tr>\n";
}
} else {
echo "<tr><td colspan=\"4\" align=\"center\">" . gettext("No saved WoL addresses") . ".</td></tr>\n";
echo "<tr><td colspan=\"4\" align=\"center\">" . gettext("No saved WoL addresses") . ".</td></tr>\n";
}
?>
</table>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment