mirror of
https://github.com/billz/raspap-webgui.git
synced 2025-03-01 10:31:47 +00:00
Status message when CLI binary not found, fetch provider countries, status, user account
This commit is contained in:
parent
f535acc18c
commit
ac863f5c8a
@ -42,6 +42,12 @@ body {
|
|||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-primary.disabled {
|
||||||
|
color: <?php echo $color; ?> !important;
|
||||||
|
border-color: <?php echo $color; ?> !important;
|
||||||
|
background-color: #fff !important;
|
||||||
|
}
|
||||||
|
|
||||||
.card-footer, .modal-footer {
|
.card-footer, .modal-footer {
|
||||||
background-color: #f2f1f0;
|
background-color: #f2f1f0;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once 'includes/config.php';
|
require_once 'includes/config.php';
|
||||||
require_once 'includes/wifi_functions.php';
|
|
||||||
|
|
||||||
getWifiInterface();
|
/*
|
||||||
|
|
||||||
/**
|
|
||||||
* Manage VPN provider configuration
|
* Manage VPN provider configuration
|
||||||
*/
|
*/
|
||||||
function DisplayProviderConfig()
|
function DisplayProviderConfig()
|
||||||
@ -13,6 +10,38 @@ function DisplayProviderConfig()
|
|||||||
$status = new \RaspAP\Messages\StatusMessage;
|
$status = new \RaspAP\Messages\StatusMessage;
|
||||||
$providerName = getProviderValue($_SESSION["providerID"], "name");
|
$providerName = getProviderValue($_SESSION["providerID"], "name");
|
||||||
$binPath = getProviderValue($_SESSION["providerID"], "bin_path");
|
$binPath = getProviderValue($_SESSION["providerID"], "bin_path");
|
||||||
|
$public_ip = get_public_ip();
|
||||||
|
|
||||||
|
if (!file_exists($binPath)) {
|
||||||
|
$installPage = getProviderValue($_SESSION["providerID"], "install_page");
|
||||||
|
$status->addMessage('Expected '.$providerName.' binary not found at: '.$binPath, 'warning');
|
||||||
|
$status->addMessage('Visit the <a href="'.$installPage.'" target="_blank">installation instructions</a> for '.$providerName.'\'s Linux CLI.', 'warning');
|
||||||
|
$ctlState = 'disabled';
|
||||||
|
$providerVersion = 'not found';
|
||||||
|
} else {
|
||||||
|
// fetch provider status
|
||||||
|
$output = shell_exec("sudo $binPath status");
|
||||||
|
$serviceStatus = strtolower($output) == 0 ? "inactive" : "active";
|
||||||
|
$result = strtolower(($lastSpacePos = strrpos($output, ' ')) ? substr($output, $lastSpacePos + 1) : $output);
|
||||||
|
$providerLog = stripArtifacts($output);
|
||||||
|
//echo '<br>status = '.$result;
|
||||||
|
|
||||||
|
// fetch provider version
|
||||||
|
$providerVersion = shell_exec("sudo $binPath -v");
|
||||||
|
|
||||||
|
// fetch account info
|
||||||
|
exec("sudo $binPath account", $output);
|
||||||
|
$accountInfo = stripArtifacts($output);
|
||||||
|
|
||||||
|
// fetch available countries
|
||||||
|
$output = shell_exec("sudo $binPath countries");
|
||||||
|
$output = stripArtifacts($output, '\s');
|
||||||
|
$arrTmp = explode(",", $output);
|
||||||
|
$countries = array_combine($arrTmp, $arrTmp);
|
||||||
|
foreach ($countries as $key => $value) {
|
||||||
|
$countries[$key] = str_replace("_", " ", $value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!RASPI_MONITOR_ENABLED) {
|
if (!RASPI_MONITOR_ENABLED) {
|
||||||
if (isset($_POST['SaveProviderSettings'])) {
|
if (isset($_POST['SaveProviderSettings'])) {
|
||||||
@ -21,34 +50,31 @@ function DisplayProviderConfig()
|
|||||||
}
|
}
|
||||||
$return = SaveProviderConfig($status, $someVar);
|
$return = SaveProviderConfig($status, $someVar);
|
||||||
} elseif (isset($_POST['StartProviderVPN'])) {
|
} elseif (isset($_POST['StartProviderVPN'])) {
|
||||||
$status->addMessage('Attempting to connect provider VPN', 'info');
|
$status->addMessage('Attempting to connect VPN provider', 'info');
|
||||||
exec('sudo '.$binPath.' connect', $return);
|
exec("sudo $binPath connect", $return);
|
||||||
foreach ($return as $line) {
|
foreach ($return as $line) {
|
||||||
$status->addMessage($line, 'info');
|
$status->addMessage($line, 'info');
|
||||||
}
|
}
|
||||||
} elseif (isset($_POST['StopProviderVPN'])) {
|
} elseif (isset($_POST['StopProviderVPN'])) {
|
||||||
$status->addMessage('Attempting to disconnect provider VPN', 'info');
|
$status->addMessage('Attempting to disconnect VPN provider', 'info');
|
||||||
exec('sudo '.$binPath.' disconnect', $return);
|
exec("sudo $binPath disconnect", $return);
|
||||||
foreach ($return as $line) {
|
foreach ($return as $line) {
|
||||||
$status->addMessage($line, 'info');
|
$status->addMessage($line, 'info');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exec("sudo $binPath status", $result);
|
|
||||||
$serviceStatus = strtolower($output[1]) == 0 ? "disconnected" : "connected";
|
|
||||||
$public_ip = get_public_ip();
|
|
||||||
|
|
||||||
exec("sudo $binPath status > /tmp/provider.log");
|
|
||||||
$providerLog = file_get_contents('/tmp/provider.log');
|
|
||||||
|
|
||||||
echo renderTemplate(
|
echo renderTemplate(
|
||||||
"provider", compact(
|
"provider", compact(
|
||||||
"status",
|
"status",
|
||||||
"serviceStatus",
|
"serviceStatus",
|
||||||
"providerName",
|
"providerName",
|
||||||
|
"providerVersion",
|
||||||
|
"accountInfo",
|
||||||
|
"countries",
|
||||||
"providerLog",
|
"providerLog",
|
||||||
"public_ip"
|
"public_ip",
|
||||||
|
"ctlState"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -63,3 +89,17 @@ function SaveProviderConfig($status, $someVar)
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes artifacts from shell_exec string values
|
||||||
|
*
|
||||||
|
* @param string $output
|
||||||
|
* @param string $pattern
|
||||||
|
* @return string $result
|
||||||
|
*/
|
||||||
|
function stripArtifacts($output, $pattern = null)
|
||||||
|
{
|
||||||
|
$result = preg_replace('/[-\/\n\t\\\\'.$pattern.'|]/', '', $output);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user