mirror of
https://github.com/billz/raspap-webgui.git
synced 2025-03-01 10:31:47 +00:00
Transfer template logic to includes, see #749 thx @mp035
This commit is contained in:
@@ -1,9 +1,16 @@
|
||||
<?php
|
||||
|
||||
require_once "app/lib/Parsedown.php";
|
||||
|
||||
/**
|
||||
* Displays info about the RaspAP project
|
||||
*/
|
||||
function DisplayAbout()
|
||||
{
|
||||
echo renderTemplate("about");
|
||||
$Parsedown = new Parsedown();
|
||||
$strContent = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/BACKERS.md');
|
||||
$sponsorsHtml = $Parsedown->text($strContent);
|
||||
|
||||
echo renderTemplate("about", compact('sponsorsHtml'));
|
||||
}
|
||||
|
||||
|
@@ -75,13 +75,31 @@ function DisplayAdBlockConfig()
|
||||
$dnsmasq_state = ($dnsmasq[0] > 0);
|
||||
$serviceStatus = $dnsmasq_state && $enabled ? "up" : "down";
|
||||
|
||||
$adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt');
|
||||
|
||||
$adblock_log = '';
|
||||
exec('sudo chmod o+r /tmp/dnsmasq.log');
|
||||
$handle = fopen("/tmp/dnsmasq.log", "r");
|
||||
if ($handle) {
|
||||
while (($line = fgets($handle)) !== false) {
|
||||
if (preg_match('/(0.0.0.0)/', $line)) {
|
||||
$adblock_log .= $line;
|
||||
}
|
||||
}
|
||||
fclose($handle);
|
||||
} else {
|
||||
$adblock_log = "Unable to open log file";
|
||||
}
|
||||
|
||||
echo renderTemplate(
|
||||
"adblock", compact(
|
||||
"status",
|
||||
"serviceStatus",
|
||||
"dnsmasq_state",
|
||||
"enabled",
|
||||
"custom_enabled"
|
||||
"custom_enabled",
|
||||
"adblock_custom_content",
|
||||
"adblock_log"
|
||||
)
|
||||
);
|
||||
}
|
||||
|
@@ -1,6 +1,9 @@
|
||||
<?php
|
||||
$user = $_SERVER['PHP_AUTH_USER'];
|
||||
$pass = $_SERVER['PHP_AUTH_PW'];
|
||||
$user = $_SERVER['PHP_AUTH_USER'] ?? "";
|
||||
$pass = $_SERVER['PHP_AUTH_PW'] ?? "";
|
||||
|
||||
require_once RASPI_CONFIG.'/raspap.php';
|
||||
$config = getConfig();
|
||||
|
||||
$validated = ($user == $config['admin_user']) && password_verify($pass, $config['admin_pass']);
|
||||
|
||||
|
@@ -97,5 +97,13 @@ function DisplayWPAConfig()
|
||||
connectedWifiStations($networks);
|
||||
sortNetworksByRSSI($networks);
|
||||
|
||||
echo renderTemplate("configure_client", compact("status"));
|
||||
$clientInterface = $_SESSION['wifi_client_interface'];
|
||||
|
||||
exec('ip a show '.$clientInterface, $stdoutIp);
|
||||
$stdoutIpAllLinesGlued = implode(" ", $stdoutIp);
|
||||
$stdoutIpWRepeatedSpaces = preg_replace('/\s\s+/', ' ', $stdoutIpAllLinesGlued);
|
||||
preg_match('/state (UP|DOWN)/i', $stdoutIpWRepeatedSpaces, $matchesState) || $matchesState[1] = 'unknown';
|
||||
$ifaceStatus = strtolower($matchesState[1]) ? "up" : "down";
|
||||
|
||||
echo renderTemplate("configure_client", compact("status", "clientInterface", "ifaceStatus"));
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
require_once 'includes/config.php';
|
||||
require_once 'includes/wifi_functions.php';
|
||||
require_once 'includes/functions.php';
|
||||
|
||||
/**
|
||||
* Show dashboard page.
|
||||
@@ -136,7 +137,7 @@ function DisplayDashboard(&$extraFooterScripts)
|
||||
if ($signalLevel >= 0) {
|
||||
$strLinkQuality = 100;
|
||||
} else {
|
||||
$strLinkQuality = 100 + $signalLevel;
|
||||
$strLinkQuality = 100 + intval($signalLevel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,9 +178,30 @@ function DisplayDashboard(&$extraFooterScripts)
|
||||
$status->addMessage(sprintf(_('Interface is %s.'), strtolower($interfaceState)), $classMsgDevicestatus);
|
||||
}
|
||||
}
|
||||
// brought in from template
|
||||
$arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini');
|
||||
$bridgedEnable = $arrHostapdConf['BridgedEnable'];
|
||||
$clientInterface = $_SESSION['wifi_client_interface'];
|
||||
$apInterface = $_SESSION['ap_interface'];
|
||||
$MACPattern = '"([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}"';
|
||||
|
||||
if (getBridgedState()) {
|
||||
$moreLink = "hostapd_conf";
|
||||
exec('iw dev ' . $apInterface . ' station dump | grep -oE ' . $MACPattern, $clients);
|
||||
} else {
|
||||
$moreLink = "dhcpd_conf";
|
||||
exec('cat ' . RASPI_DNSMASQ_LEASES . '| grep -E $(iw dev ' . $apInterface . ' station dump | grep -oE ' . $MACPattern . ' | paste -sd "|")', $clients);
|
||||
}
|
||||
$ifaceStatus = $wlan0up ? "up" : "down";
|
||||
|
||||
echo renderTemplate(
|
||||
"dashboard", compact(
|
||||
"clients",
|
||||
"moreLink",
|
||||
"apInterface",
|
||||
"clientInterface",
|
||||
"ifaceStatus",
|
||||
"bridgedEnable",
|
||||
"status",
|
||||
"ipv4Addrs",
|
||||
"ipv4Netmasks",
|
||||
|
@@ -1,35 +1,45 @@
|
||||
<?php
|
||||
|
||||
$rInfo=array();
|
||||
// get all default routes
|
||||
exec('ip route list | sed -rn "s/default via (([0-9]{1,3}\.){3}[0-9]{1,3}).*dev (\w*).*src (([0-9]{1,3}\.){3}[0-9]{1,3}).*/\3 \4 \1/p"', $routes);
|
||||
exec('ip route list | sed -rn "s/default dev (\w*) scope link/\1/p"',$devs);
|
||||
if(!empty($devs)) {
|
||||
foreach ($devs as $dev)
|
||||
exec('ip route list | sed -rn "s/(([0-9]{1,3}\.){3}[0-9]{1,3}).*dev.*("'.$dev.'").*scope link src (([0-9]{1,3}\.){3}[0-9]{1,3}).*/\3 \4 \1/p"',$routes);
|
||||
}
|
||||
if (!empty($routes) ) {
|
||||
foreach ($routes as $i => $route) {
|
||||
$prop=explode(' ', $route);
|
||||
$rInfo[$i]["interface"]=$prop[0];
|
||||
$rInfo[$i]["ip-address"]=$prop[1];
|
||||
$rInfo[$i]["gateway"]=$prop[2];
|
||||
// resolve the name of the gateway (if possible)
|
||||
unset($host);
|
||||
exec('host '.$prop[2].' | sed -rn "s/.*domain name pointer (.*)\./\1/p" | head -n 1', $host);
|
||||
$rInfo[$i]["gw-name"] = empty($host) ? "*" : $host[0];
|
||||
if (isset($checkAccess) && $checkAccess) {
|
||||
// check internet connectivity w/ and w/o DNS resolution
|
||||
unset($okip);
|
||||
exec('ping -W1 -c 1 -I '.$prop[0].' '.RASPI_ACCESS_CHECK_IP.' | sed -rn "s/.*icmp_seq=1.*time=.*/OK/p"',$okip);
|
||||
$rInfo[$i]["access-ip"] = empty($okip) ? false : true;
|
||||
unset($okdns);
|
||||
exec('ping -W1 -c 1 -I '.$prop[0].' '.RASPI_ACCESS_CHECK_DNS.' | sed -rn "s/.*icmp_seq=1.*time=.*/OK/p"',$okdns);
|
||||
$rInfo[$i]["access-dns"] = empty($okdns) ? false : true;
|
||||
}
|
||||
/*
|
||||
* Fetches details of the kernel routing table
|
||||
*
|
||||
* @param boolean $checkAccesss Perform connectivity test
|
||||
* @return string
|
||||
*/
|
||||
function getRouteInfo($checkAccess)
|
||||
{
|
||||
$rInfo = array();
|
||||
// get all default routes
|
||||
exec('ip route list | sed -rn "s/default via (([0-9]{1,3}\.){3}[0-9]{1,3}).*dev (\w*).*src (([0-9]{1,3}\.){3}[0-9]{1,3}).*/\3 \4 \1/p"', $routes);
|
||||
exec('ip route list | sed -rn "s/default dev (\w*) scope link/\1/p"', $devs);
|
||||
if (!empty($devs)) {
|
||||
foreach ($devs as $dev)
|
||||
exec('ip route list | sed -rn "s/(([0-9]{1,3}\.){3}[0-9]{1,3}).*dev.*("' . $dev . '").*scope link src (([0-9]{1,3}\.){3}[0-9]{1,3}).*/\3 \4 \1/p"', $routes);
|
||||
}
|
||||
} else {
|
||||
$rInfo = array("error"=>"No route to the internet found");
|
||||
if (!empty($routes)) {
|
||||
foreach ($routes as $i => $route) {
|
||||
$prop = explode(' ', $route);
|
||||
$rInfo[$i]["interface"] = $prop[0];
|
||||
$rInfo[$i]["ip-address"] = $prop[1];
|
||||
$rInfo[$i]["gateway"] = $prop[2];
|
||||
// resolve the name of the gateway (if possible)
|
||||
unset($host);
|
||||
exec('host ' . $prop[2] . ' | sed -rn "s/.*domain name pointer (.*)\./\1/p" | head -n 1', $host);
|
||||
$rInfo[$i]["gw-name"] = empty($host) ? "*" : $host[0];
|
||||
if (isset($checkAccess) && $checkAccess) {
|
||||
// check internet connectivity w/ and w/o DNS resolution
|
||||
unset($okip);
|
||||
exec('ping -W1 -c 1 -I ' . $prop[0] . ' ' . RASPI_ACCESS_CHECK_IP . ' | sed -rn "s/.*icmp_seq=1.*time=.*/OK/p"', $okip);
|
||||
$rInfo[$i]["access-ip"] = empty($okip) ? false : true;
|
||||
unset($okdns);
|
||||
exec('ping -W1 -c 1 -I ' . $prop[0] . ' ' . RASPI_ACCESS_CHECK_DNS . ' | sed -rn "s/.*icmp_seq=1.*time=.*/OK/p"', $okdns);
|
||||
$rInfo[$i]["access-dns"] = empty($okdns) ? false : true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$rInfo = array("error" => "No route to the internet found");
|
||||
}
|
||||
return $rInfo;
|
||||
}
|
||||
$rInfo_json = json_encode($rInfo);
|
||||
?>
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
require_once 'includes/status_messages.php';
|
||||
require_once 'includes/internetRoute.php';
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -12,9 +13,14 @@ function DisplayNetworkingConfig()
|
||||
$status = new StatusMessages();
|
||||
|
||||
exec("ls /sys/class/net | grep -v lo", $interfaces);
|
||||
$routeInfo = getRouteInfo(true);
|
||||
$arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini');
|
||||
$bridgedEnabled = $arrHostapdConf['BridgedEnable'];
|
||||
|
||||
foreach ($interfaces as $interface) {
|
||||
exec("ip a show $interface", $$interface);
|
||||
}
|
||||
echo renderTemplate("networking", compact("status", "interfaces"));
|
||||
echo renderTemplate("networking", compact(
|
||||
"status",
|
||||
"interfaces",
|
||||
"routeInfo",
|
||||
"bridgedEnabled")
|
||||
);
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
require_once 'includes/status_messages.php';
|
||||
require_once 'config.php';
|
||||
require_once 'app/lib/system.php';
|
||||
|
||||
/**
|
||||
* Find the version of the Raspberry Pi
|
||||
@@ -151,5 +152,78 @@ function DisplaySystem()
|
||||
'vi_VN.UTF-8' => 'Tiếng Việt (Vietnamese)'
|
||||
);
|
||||
|
||||
echo renderTemplate("system", compact("arrLocales", "status", "serverPort", "serverBind"));
|
||||
#fetch system status variables.
|
||||
$system = new System();
|
||||
|
||||
$hostname = $system->hostname();
|
||||
$uptime = $system->uptime();
|
||||
$cores = $system->processorCount();
|
||||
|
||||
// mem used
|
||||
$memused = $system->usedMemory();
|
||||
$memused_status = "primary";
|
||||
if ($memused > 90) {
|
||||
$memused_status = "danger";
|
||||
$memused_led = "service-status-down";
|
||||
} elseif ($memused > 75) {
|
||||
$memused_status = "warning";
|
||||
$memused_led = "service-status-warn";
|
||||
} elseif ($memused > 0) {
|
||||
$memused_status = "success";
|
||||
$memused_led = "service-status-up";
|
||||
}
|
||||
|
||||
// cpu load
|
||||
$cpuload = $system->systemLoadPercentage();
|
||||
if ($cpuload > 90) {
|
||||
$cpuload_status = "danger";
|
||||
} elseif ($cpuload > 75) {
|
||||
$cpuload_status = "warning";
|
||||
} elseif ($cpuload >= 0) {
|
||||
$cpuload_status = "success";
|
||||
}
|
||||
|
||||
// cpu temp
|
||||
$cputemp = $system->systemTemperature();
|
||||
if ($cputemp > 70) {
|
||||
$cputemp_status = "danger";
|
||||
$cputemp_led = "service-status-down";
|
||||
} elseif ($cputemp > 50) {
|
||||
$cputemp_status = "warning";
|
||||
$cputemp_led = "service-status-warn";
|
||||
} else {
|
||||
$cputemp_status = "success";
|
||||
$cputemp_led = "service-status-up";
|
||||
}
|
||||
|
||||
// hostapd status
|
||||
$hostapd = $system->hostapdStatus();
|
||||
if ($hostapd[0] == 1) {
|
||||
$hostapd_status = "active";
|
||||
$hostapd_led = "service-status-up";
|
||||
} else {
|
||||
$hostapd_status = "inactive";
|
||||
$hostapd_led = "service-status-down";
|
||||
}
|
||||
|
||||
echo renderTemplate("system", compact(
|
||||
"arrLocales",
|
||||
"status",
|
||||
"serverPort",
|
||||
"serverBind",
|
||||
"hostname",
|
||||
"uptime",
|
||||
"cores",
|
||||
"memused",
|
||||
"memused_status",
|
||||
"memused_led",
|
||||
"cpuload",
|
||||
"cpuload_status",
|
||||
"cputemp",
|
||||
"cputemp_status",
|
||||
"cputemp_led",
|
||||
"hostapd",
|
||||
"hostapd_status",
|
||||
"hostapd_led"
|
||||
));
|
||||
}
|
||||
|
@@ -9,7 +9,7 @@ function knownWifiStations(&$networks)
|
||||
foreach ($known_return as $line) {
|
||||
if (preg_match('/network\s*=/', $line)) {
|
||||
$network = array('visible' => false, 'configured' => true, 'connected' => false);
|
||||
} elseif ($network !== null) {
|
||||
} elseif (isset($network) && $network !== null) {
|
||||
if (preg_match('/^\s*}\s*$/', $line)) {
|
||||
$networks[$ssid] = $network;
|
||||
$network = null;
|
||||
|
Reference in New Issue
Block a user