This commit is contained in:
myvesta 2025-08-15 22:15:27 -06:00 committed by GitHub
commit 16a9c9063d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
30 changed files with 130 additions and 96 deletions

View file

@ -1,4 +1,4 @@
<? <?php
error_reporting(NULL); error_reporting(NULL);
session_start(); session_start();

View file

@ -36,11 +36,13 @@ if ($v_timezone == 'America/Halifax' ) $v_timezone = 'ADT';
// List supported languages // List supported languages
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var); exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
$languages = json_decode(implode('', $output), true); $languages = json_decode(implode('', $output), true);
if (!is_array($languages)) $languages = array();
unset($output); unset($output);
// List dns cluster hosts // List dns cluster hosts
exec (VESTA_CMD."v-list-remote-dns-hosts json", $output, $return_var); exec (VESTA_CMD."v-list-remote-dns-hosts json", $output, $return_var);
$dns_cluster = json_decode(implode('', $output), true); $dns_cluster = json_decode(implode('', $output), true);
if (!is_array($dns_cluster)) $dns_cluster = array();
unset($output); unset($output);
foreach ($dns_cluster as $key => $value) { foreach ($dns_cluster as $key => $value) {
$v_dns_cluster = 'yes'; $v_dns_cluster = 'yes';
@ -49,11 +51,14 @@ foreach ($dns_cluster as $key => $value) {
// List Database hosts // List Database hosts
exec (VESTA_CMD."v-list-database-hosts json", $output, $return_var); exec (VESTA_CMD."v-list-database-hosts json", $output, $return_var);
$db_hosts = json_decode(implode('', $output), true); $db_hosts = json_decode(implode('', $output), true);
if (!is_array($db_hosts)) $db_hosts = array();
unset($output); unset($output);
$v_mysql_hosts = array_values(array_filter($db_hosts, function($host){return $host['TYPE'] === 'mysql';})); $v_mysql_hosts = array_values(array_filter($db_hosts, function($host){return $host['TYPE'] === 'mysql';}));
$v_mysql = count($v_mysql_hosts) ? 'yes' : 'no'; $v_mysql = 'no';
if (is_array($v_mysql_hosts) && count($v_mysql_hosts) > 0) $v_mysql = 'yes';
$v_pgsql_hosts = array_values(array_filter($db_hosts, function($host){return $host['TYPE'] === 'pgsql';})); $v_pgsql_hosts = array_values(array_filter($db_hosts, function($host){return $host['TYPE'] === 'pgsql';}));
$v_pgsql = count($v_pgsql_hosts) ? 'yes' : 'no'; $v_pgsql = 'no';
if (is_array($v_pgsql_hosts) && count($v_pgsql_hosts) > 0) $v_pgsql = 'yes';
unset($db_hosts); unset($db_hosts);
// List backup settings // List backup settings
@ -81,39 +86,42 @@ foreach ($backup_types as $backup_type) {
// List ssl web domains // List ssl web domains
exec (VESTA_CMD."v-search-ssl-certificates json", $output, $return_var); exec (VESTA_CMD."v-search-ssl-certificates json", $output, $return_var);
$v_ssl_domains = json_decode(implode('', $output), true); $v_ssl_domains = json_decode(implode('', $output), true);
if (!is_array($v_ssl_domains)) $v_ssl_domains = array();
//$v_vesta_certificate //$v_vesta_certificate
unset($output); unset($output);
// List ssl certificate info // List ssl certificate info
exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var); exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var);
$v_sys_ssl_str = json_decode(implode('', $output), true); $v_sys_ssl_str = json_decode(implode('', $output), true);
if (!is_array($v_sys_ssl_str)) $v_sys_ssl_str = array('VESTA'=>array());
unset($output); unset($output);
$v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT']; $v_sys_ssl_crt = isset($v_sys_ssl_str['VESTA']['CRT']) ? $v_sys_ssl_str['VESTA']['CRT'] : '';
$v_sys_ssl_key = $v_sys_ssl_str['VESTA']['KEY']; $v_sys_ssl_key = isset($v_sys_ssl_str['VESTA']['KEY']) ? $v_sys_ssl_str['VESTA']['KEY'] : '';
$v_sys_ssl_ca = $v_sys_ssl_str['VESTA']['CA']; $v_sys_ssl_ca = isset($v_sys_ssl_str['VESTA']['CA']) ? $v_sys_ssl_str['VESTA']['CA'] : '';
$v_sys_ssl_subject = $v_sys_ssl_str['VESTA']['SUBJECT']; $v_sys_ssl_subject = isset($v_sys_ssl_str['VESTA']['SUBJECT']) ? $v_sys_ssl_str['VESTA']['SUBJECT'] : '';
$v_sys_ssl_aliases = $v_sys_ssl_str['VESTA']['ALIASES']; $v_sys_ssl_aliases = isset($v_sys_ssl_str['VESTA']['ALIASES']) ? $v_sys_ssl_str['VESTA']['ALIASES'] : '';
$v_sys_ssl_not_before = $v_sys_ssl_str['VESTA']['NOT_BEFORE']; $v_sys_ssl_not_before = isset($v_sys_ssl_str['VESTA']['NOT_BEFORE']) ? $v_sys_ssl_str['VESTA']['NOT_BEFORE'] : '';
$v_sys_ssl_not_after = $v_sys_ssl_str['VESTA']['NOT_AFTER']; $v_sys_ssl_not_after = isset($v_sys_ssl_str['VESTA']['NOT_AFTER']) ? $v_sys_ssl_str['VESTA']['NOT_AFTER'] : '';
$v_sys_ssl_signature = $v_sys_ssl_str['VESTA']['SIGNATURE']; $v_sys_ssl_signature = isset($v_sys_ssl_str['VESTA']['SIGNATURE']) ? $v_sys_ssl_str['VESTA']['SIGNATURE'] : '';
$v_sys_ssl_pub_key = $v_sys_ssl_str['VESTA']['PUB_KEY']; $v_sys_ssl_pub_key = isset($v_sys_ssl_str['VESTA']['PUB_KEY']) ? $v_sys_ssl_str['VESTA']['PUB_KEY'] : '';
$v_sys_ssl_issuer = $v_sys_ssl_str['VESTA']['ISSUER']; $v_sys_ssl_issuer = isset($v_sys_ssl_str['VESTA']['ISSUER']) ? $v_sys_ssl_str['VESTA']['ISSUER'] : '';
// List mail ssl certificate info // List mail ssl certificate info
if (!empty($_SESSION['VESTA_CERTIFICATE'])); { if (!empty($_SESSION['VESTA_CERTIFICATE'])) {
exec (VESTA_CMD."v-list-sys-mail-ssl json", $output, $return_var); exec (VESTA_CMD."v-list-sys-mail-ssl json", $output, $return_var);
$v_mail_ssl_str = json_decode(implode('', $output), true); $v_mail_ssl_str = json_decode(implode('', $output), true);
if (!is_array($v_mail_ssl_str)) $v_mail_ssl_str = array('MAIL'=>array());
unset($output); unset($output);
$v_mail_ssl_crt = $v_mail_ssl_str['MAIL']['CRT']; $v_mail_ssl_crt = isset($v_mail_ssl_str['MAIL']['CRT']) ? $v_mail_ssl_str['MAIL']['CRT'] : '';
$v_mail_ssl_key = $v_mail_ssl_str['MAIL']['KEY']; $v_mail_ssl_key = isset($v_mail_ssl_str['MAIL']['KEY']) ? $v_mail_ssl_str['MAIL']['KEY'] : '';
$v_mail_ssl_ca = $v_mail_ssl_str['MAIL']['CA']; $v_mail_ssl_ca = isset($v_mail_ssl_str['MAIL']['CA']) ? $v_mail_ssl_str['MAIL']['CA'] : '';
$v_mail_ssl_subject = $v_mail_ssl_str['MAIL']['SUBJECT']; $v_mail_ssl_subject = isset($v_mail_ssl_str['MAIL']['SUBJECT']) ? $v_mail_ssl_str['MAIL']['SUBJECT'] : '';
$v_mail_ssl_aliases = $v_mail_ssl_str['MAIL']['ALIASES']; $v_mail_ssl_aliases = isset($v_mail_ssl_str['MAIL']['ALIASES']) ? $v_mail_ssl_str['MAIL']['ALIASES'] : '';
$v_mail_ssl_not_before = $v_mail_ssl_str['MAIL']['NOT_BEFORE']; $v_mail_ssl_not_before = isset($v_mail_ssl_str['MAIL']['NOT_BEFORE']) ? $v_mail_ssl_str['MAIL']['NOT_BEFORE'] : '';
$v_mail_ssl_not_after = $v_mail_ssl_str['MAIL']['NOT_AFTER']; $v_mail_ssl_not_after = isset($v_mail_ssl_str['MAIL']['NOT_AFTER']) ? $v_mail_ssl_str['MAIL']['NOT_AFTER'] : '';
$v_mail_ssl_signature = $v_mail_ssl_str['MAIL']['SIGNATURE']; $v_mail_ssl_signature = isset($v_mail_ssl_str['MAIL']['SIGNATURE']) ? $v_mail_ssl_str['MAIL']['SIGNATURE'] : '';
$v_mail_ssl_pub_key = $v_mail_ssl_str['MAIL']['PUB_KEY']; $v_mail_ssl_pub_key = isset($v_mail_ssl_str['MAIL']['PUB_KEY']) ? $v_mail_ssl_str['MAIL']['PUB_KEY'] : '';
$v_mail_ssl_issuer = $v_mail_ssl_str['MAIL']['ISSUER']; $v_mail_ssl_issuer = isset($v_mail_ssl_str['MAIL']['ISSUER']) ? $v_mail_ssl_str['MAIL']['ISSUER'] : '';
} }
// Check POST request // Check POST request
@ -242,17 +250,18 @@ if (!empty($_POST['save'])) {
// List SSL certificate info // List SSL certificate info
exec (VESTA_CMD."v-list-sys-mail-ssl json", $output, $return_var); exec (VESTA_CMD."v-list-sys-mail-ssl json", $output, $return_var);
$v_mail_ssl_str = json_decode(implode('', $output), true); $v_mail_ssl_str = json_decode(implode('', $output), true);
if (!is_array($v_mail_ssl_str)) $v_mail_ssl_str = array('MAIL'=>array());
unset($output); unset($output);
$v_mail_ssl_crt = $v_mail_ssl_str['MAIL']['CRT']; $v_mail_ssl_crt = isset($v_mail_ssl_str['MAIL']['CRT']) ? $v_mail_ssl_str['MAIL']['CRT'] : '';
$v_mail_ssl_key = $v_mail_ssl_str['MAIL']['KEY']; $v_mail_ssl_key = isset($v_mail_ssl_str['MAIL']['KEY']) ? $v_mail_ssl_str['MAIL']['KEY'] : '';
$v_mail_ssl_ca = $v_mail_ssl_str['MAIL']['CA']; $v_mail_ssl_ca = isset($v_mail_ssl_str['MAIL']['CA']) ? $v_mail_ssl_str['MAIL']['CA'] : '';
$v_mail_ssl_subject = $v_mail_ssl_str['MAIL']['SUBJECT']; $v_mail_ssl_subject = isset($v_mail_ssl_str['MAIL']['SUBJECT']) ? $v_mail_ssl_str['MAIL']['SUBJECT'] : '';
$v_mail_ssl_aliases = $v_mail_ssl_str['MAIL']['ALIASES']; $v_mail_ssl_aliases = isset($v_mail_ssl_str['MAIL']['ALIASES']) ? $v_mail_ssl_str['MAIL']['ALIASES'] : '';
$v_mail_ssl_not_before = $v_mail_ssl_str['MAIL']['NOT_BEFORE']; $v_mail_ssl_not_before = isset($v_mail_ssl_str['MAIL']['NOT_BEFORE']) ? $v_mail_ssl_str['MAIL']['NOT_BEFORE'] : '';
$v_mail_ssl_not_after = $v_mail_ssl_str['MAIL']['NOT_AFTER']; $v_mail_ssl_not_after = isset($v_mail_ssl_str['MAIL']['NOT_AFTER']) ? $v_mail_ssl_str['MAIL']['NOT_AFTER'] : '';
$v_mail_ssl_signature = $v_mail_ssl_str['MAIL']['SIGNATURE']; $v_mail_ssl_signature = isset($v_mail_ssl_str['MAIL']['SIGNATURE']) ? $v_mail_ssl_str['MAIL']['SIGNATURE'] : '';
$v_mail_ssl_pub_key = $v_mail_ssl_str['MAIL']['PUB_KEY']; $v_mail_ssl_pub_key = isset($v_mail_ssl_str['MAIL']['PUB_KEY']) ? $v_mail_ssl_str['MAIL']['PUB_KEY'] : '';
$v_mail_ssl_issuer = $v_mail_ssl_str['MAIL']['ISSUER']; $v_mail_ssl_issuer = isset($v_mail_ssl_str['MAIL']['ISSUER']) ? $v_mail_ssl_str['MAIL']['ISSUER'] : '';
} }
} }
} }
@ -444,17 +453,18 @@ if (!empty($_POST['save'])) {
// List SSL certificate info // List SSL certificate info
exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var); exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var);
$v_sys_ssl_str = json_decode(implode('', $output), true); $v_sys_ssl_str = json_decode(implode('', $output), true);
if (!is_array($v_sys_ssl_str)) $v_sys_ssl_str = array('VESTA'=>array());
unset($output); unset($output);
$v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT']; $v_sys_ssl_crt = isset($v_sys_ssl_str['VESTA']['CRT']) ? $v_sys_ssl_str['VESTA']['CRT'] : '';
$v_sys_ssl_key = $v_sys_ssl_str['VESTA']['KEY']; $v_sys_ssl_key = isset($v_sys_ssl_str['VESTA']['KEY']) ? $v_sys_ssl_str['VESTA']['KEY'] : '';
$v_sys_ssl_ca = $v_sys_ssl_str['VESTA']['CA']; $v_sys_ssl_ca = isset($v_sys_ssl_str['VESTA']['CA']) ? $v_sys_ssl_str['VESTA']['CA'] : '';
$v_sys_ssl_subject = $v_sys_ssl_str['VESTA']['SUBJECT']; $v_sys_ssl_subject = isset($v_sys_ssl_str['VESTA']['SUBJECT']) ? $v_sys_ssl_str['VESTA']['SUBJECT'] : '';
$v_sys_ssl_aliases = $v_sys_ssl_str['VESTA']['ALIASES']; $v_sys_ssl_aliases = isset($v_sys_ssl_str['VESTA']['ALIASES']) ? $v_sys_ssl_str['VESTA']['ALIASES'] : '';
$v_sys_ssl_not_before = $v_sys_ssl_str['VESTA']['NOT_BEFORE']; $v_sys_ssl_not_before = isset($v_sys_ssl_str['VESTA']['NOT_BEFORE']) ? $v_sys_ssl_str['VESTA']['NOT_BEFORE'] : '';
$v_sys_ssl_not_after = $v_sys_ssl_str['VESTA']['NOT_AFTER']; $v_sys_ssl_not_after = isset($v_sys_ssl_str['VESTA']['NOT_AFTER']) ? $v_sys_ssl_str['VESTA']['NOT_AFTER'] : '';
$v_sys_ssl_signature = $v_sys_ssl_str['VESTA']['SIGNATURE']; $v_sys_ssl_signature = isset($v_sys_ssl_str['VESTA']['SIGNATURE']) ? $v_sys_ssl_str['VESTA']['SIGNATURE'] : '';
$v_sys_ssl_pub_key = $v_sys_ssl_str['VESTA']['PUB_KEY']; $v_sys_ssl_pub_key = isset($v_sys_ssl_str['VESTA']['PUB_KEY']) ? $v_sys_ssl_str['VESTA']['PUB_KEY'] : '';
$v_sys_ssl_issuer = $v_sys_ssl_str['VESTA']['ISSUER']; $v_sys_ssl_issuer = isset($v_sys_ssl_str['VESTA']['ISSUER']) ? $v_sys_ssl_str['VESTA']['ISSUER'] : '';
} }
} }
} }
@ -490,17 +500,18 @@ if (!empty($_POST['save'])) {
// List ssl certificate info // List ssl certificate info
exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var); exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var);
$v_sys_ssl_str = json_decode(implode('', $output), true); $v_sys_ssl_str = json_decode(implode('', $output), true);
if (!is_array($v_sys_ssl_str)) $v_sys_ssl_str = array('VESTA'=>array());
unset($output); unset($output);
$v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT']; $v_sys_ssl_crt = isset($v_sys_ssl_str['VESTA']['CRT']) ? $v_sys_ssl_str['VESTA']['CRT'] : '';
$v_sys_ssl_key = $v_sys_ssl_str['VESTA']['KEY']; $v_sys_ssl_key = isset($v_sys_ssl_str['VESTA']['KEY']) ? $v_sys_ssl_str['VESTA']['KEY'] : '';
$v_sys_ssl_ca = $v_sys_ssl_str['VESTA']['CA']; $v_sys_ssl_ca = isset($v_sys_ssl_str['VESTA']['CA']) ? $v_sys_ssl_str['VESTA']['CA'] : '';
$v_sys_ssl_subject = $v_sys_ssl_str['VESTA']['SUBJECT']; $v_sys_ssl_subject = isset($v_sys_ssl_str['VESTA']['SUBJECT']) ? $v_sys_ssl_str['VESTA']['SUBJECT'] : '';
$v_sys_ssl_aliases = $v_sys_ssl_str['VESTA']['ALIASES']; $v_sys_ssl_aliases = isset($v_sys_ssl_str['VESTA']['ALIASES']) ? $v_sys_ssl_str['VESTA']['ALIASES'] : '';
$v_sys_ssl_not_before = $v_sys_ssl_str['VESTA']['NOT_BEFORE']; $v_sys_ssl_not_before = isset($v_sys_ssl_str['VESTA']['NOT_BEFORE']) ? $v_sys_ssl_str['VESTA']['NOT_BEFORE'] : '';
$v_sys_ssl_not_after = $v_sys_ssl_str['VESTA']['NOT_AFTER']; $v_sys_ssl_not_after = isset($v_sys_ssl_str['VESTA']['NOT_AFTER']) ? $v_sys_ssl_str['VESTA']['NOT_AFTER'] : '';
$v_sys_ssl_signature = $v_sys_ssl_str['VESTA']['SIGNATURE']; $v_sys_ssl_signature = isset($v_sys_ssl_str['VESTA']['SIGNATURE']) ? $v_sys_ssl_str['VESTA']['SIGNATURE'] : '';
$v_sys_ssl_pub_key = $v_sys_ssl_str['VESTA']['PUB_KEY']; $v_sys_ssl_pub_key = isset($v_sys_ssl_str['VESTA']['PUB_KEY']) ? $v_sys_ssl_str['VESTA']['PUB_KEY'] : '';
$v_sys_ssl_issuer = $v_sys_ssl_str['VESTA']['ISSUER']; $v_sys_ssl_issuer = isset($v_sys_ssl_str['VESTA']['ISSUER']) ? $v_sys_ssl_str['VESTA']['ISSUER'] : '';
} }
} }
} }

View file

@ -89,7 +89,7 @@ function detect_user_language($fallback='en') {
$accept_langs_sorted[$code] = (double)$q; $accept_langs_sorted[$code] = (double)$q;
} }
} }
arsort($accept_langs_sorted); if (!empty($accept_langs_sorted)) arsort($accept_langs_sorted);
// List languages // List languages
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var); exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);

View file

@ -20,6 +20,7 @@ include("/usr/local/vesta/web/inc/main.php");
// Set system language // Set system language
exec (VESTA_CMD . "v-list-sys-config json", $output, $return_var); exec (VESTA_CMD . "v-list-sys-config json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) $data = array('config' => array());
if (!empty( $data['config']['LANGUAGE'])) { if (!empty( $data['config']['LANGUAGE'])) {
$_SESSION['language'] = $data['config']['LANGUAGE']; $_SESSION['language'] = $data['config']['LANGUAGE'];
} else { } else {

View file

@ -108,18 +108,19 @@ if (isset($_SESSION['look']) && ( $_SESSION['look'] != 'admin' )) {
function get_favourites(){ function get_favourites(){
exec (VESTA_CMD."v-list-user-favourites ".$_SESSION['user']." json", $output, $return_var); exec (VESTA_CMD."v-list-user-favourites ".$_SESSION['user']." json", $output, $return_var);
// $data = json_decode(implode('', $output).'}', true);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data, true) : array();
$favourites = array(); $favourites = array();
foreach($data['Favourites'] as $key => $favourite){ if (isset($data['Favourites']) && is_array($data['Favourites'])) {
$favourites[$key] = array(); foreach($data['Favourites'] as $key => $favourite){
$favourites[$key] = array();
$items = explode(',', $favourite); $items = explode(',', $favourite);
foreach($items as $item){ foreach($items as $item){
if($item) if($item)
$favourites[$key][trim($item)] = 1; $favourites[$key][trim($item)] = 1;
}
} }
} }
@ -189,6 +190,7 @@ function top_panel($user, $TAB) {
exit; exit;
} }
$panel = json_decode(implode('', $output), true); $panel = json_decode(implode('', $output), true);
if (!is_array($panel)) $panel = array();
unset($output); unset($output);
@ -196,8 +198,9 @@ function top_panel($user, $TAB) {
$command = VESTA_CMD."v-list-user-notifications '".$user."' 'json'"; $command = VESTA_CMD."v-list-user-notifications '".$user."' 'json'";
exec ($command, $output, $return_var); exec ($command, $output, $return_var);
$notifications = json_decode(implode('', $output), true); $notifications = json_decode(implode('', $output), true);
if (!is_array($notifications)) $notifications = array();
foreach($notifications as $message){ foreach($notifications as $message){
if($message['ACK'] == 'no'){ if(isset($message['ACK']) && $message['ACK'] == 'no'){
$panel[$user]['NOTIFICATIONS'] = 'yes'; $panel[$user]['NOTIFICATIONS'] = 'yes';
break; break;
} }
@ -214,7 +217,10 @@ function top_panel($user, $TAB) {
function translate_date($date){ function translate_date($date){
$date = strtotime($date); $date = strtotime($date);
return strftime("%d &nbsp;", $date).__(strftime("%b", $date)).strftime(" &nbsp;%Y", $date); $day = date('d', $date);
$mon = date('M', $date);
$year = date('Y', $date);
return $day.' &nbsp;'.__($mon).' &nbsp;'.$year;
} }
function humanize_time($usage) { function humanize_time($usage) {

View file

@ -9,14 +9,14 @@ include($_SERVER['DOCUMENT_ROOT'].'/inc/main.php');
if (empty($_GET['backup'])){ if (empty($_GET['backup'])){
exec (VESTA_CMD."v-list-user-backups $user json", $output, $return_var); exec (VESTA_CMD."v-list-user-backups $user json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data,true) : array();
unset($output); unset($output);
render_page($user, $TAB, 'list_backup'); render_page($user, $TAB, 'list_backup');
} else { } else {
exec (VESTA_CMD."v-list-user-backup $user ".escapeshellarg($_GET['backup'])." json", $output, $return_var); exec (VESTA_CMD."v-list-user-backup $user ".escapeshellarg($_GET['backup'])." json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data,true) : array();
unset($output); unset($output);
render_page($user, $TAB, 'list_backup_detail'); render_page($user, $TAB, 'list_backup_detail');

View file

@ -8,7 +8,7 @@ include($_SERVER['DOCUMENT_ROOT'].'/inc/main.php');
// Data // Data
exec (VESTA_CMD."v-list-cron-jobs $user json", $output, $return_var); exec (VESTA_CMD."v-list-cron-jobs $user json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data,true) : array();
unset($output); unset($output);
// Render page // Render page

View file

@ -8,7 +8,7 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
// Data // Data
exec (VESTA_CMD."v-list-databases $user json", $output, $return_var); exec (VESTA_CMD."v-list-databases $user json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
// Render page // Render page

View file

@ -22,6 +22,7 @@ if (empty($panel)) {
exit; exit;
} }
$panel = json_decode(implode('', $output), true); $panel = json_decode(implode('', $output), true);
if (!is_array($panel)) $panel = array();
} }
$path_a = !empty($_REQUEST['dir_a']) ? htmlentities($_REQUEST['dir_a']) : ''; $path_a = !empty($_REQUEST['dir_a']) ? htmlentities($_REQUEST['dir_a']) : '';

View file

@ -9,14 +9,14 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
if (empty($_GET['domain'])){ if (empty($_GET['domain'])){
exec (VESTA_CMD."v-list-dns-domains ".escapeshellarg($user)." json", $output, $return_var); exec (VESTA_CMD."v-list-dns-domains ".escapeshellarg($user)." json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
render_page($user, $TAB, 'list_dns'); render_page($user, $TAB, 'list_dns');
} else { } else {
exec (VESTA_CMD."v-list-dns-records ".escapeshellarg($user)." ".escapeshellarg($_GET['domain'])." json", $output, $return_var); exec (VESTA_CMD."v-list-dns-records ".escapeshellarg($user)." ".escapeshellarg($_GET['domain'])." json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
render_page($user, $TAB, 'list_dns_rec'); render_page($user, $TAB, 'list_dns_rec');

View file

@ -14,7 +14,7 @@ if ($_SESSION['user'] != 'admin') {
// Data // Data
exec (VESTA_CMD."v-list-firewall-ban json", $output, $return_var); exec (VESTA_CMD."v-list-firewall-ban json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
// Render page // Render page

View file

@ -1,8 +1,8 @@
<? <?php
error_reporting(NULL); error_reporting(NULL);
session_start(); session_start();
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); include($_SERVER['DOCUMENT_ROOT'].'/inc/main.php');
if (!function_exists('str_contains')) { if (!function_exists('str_contains')) {
function str_contains($haystack, $needle) function str_contains($haystack, $needle)

View file

@ -14,7 +14,7 @@ if ($_SESSION['user'] != 'admin') {
// Data // Data
exec (VESTA_CMD."v-list-firewall json", $output, $return_var); exec (VESTA_CMD."v-list-firewall json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
// Render page // Render page

View file

@ -15,7 +15,7 @@ if ($_SESSION['user'] != 'admin') {
// Data // Data
exec (VESTA_CMD."v-list-sys-ips json", $output, $return_var); exec (VESTA_CMD."v-list-sys-ips json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
// Render page // Render page

View file

@ -9,14 +9,14 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
if (empty($_GET['domain'])){ if (empty($_GET['domain'])){
exec (VESTA_CMD."v-list-mail-domains ".escapeshellarg($user)." json", $output, $return_var); exec (VESTA_CMD."v-list-mail-domains ".escapeshellarg($user)." json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
render_page($user, $TAB, 'list_mail'); render_page($user, $TAB, 'list_mail');
} else { } else {
exec (VESTA_CMD."v-list-mail-accounts ".escapeshellarg($user)." ".escapeshellarg($_GET['domain'])." json", $output, $return_var); exec (VESTA_CMD."v-list-mail-accounts ".escapeshellarg($user)." ".escapeshellarg($_GET['domain'])." json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
render_page($user, $TAB, 'list_mail_acc'); render_page($user, $TAB, 'list_mail_acc');

View file

@ -9,7 +9,7 @@ if($_REQUEST['ajax'] == 1){
// Data // Data
exec (VESTA_CMD."v-list-user-notifications $user json", $output, $return_var); exec (VESTA_CMD."v-list-user-notifications $user json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data,true) : array();
foreach($data as $key => $note){ foreach($data as $key => $note){
$note['ID'] = $key; $note['ID'] = $key;
$data[$key] = $note; $data[$key] = $note;
@ -25,7 +25,7 @@ $TAB = 'NOTIFICATIONS';
// Data // Data
exec (VESTA_CMD."v-list-user-notifications $user json", $output, $return_var); exec (VESTA_CMD."v-list-user-notifications $user json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data,true) : array();
// Render page // Render page
render_page($user, $TAB, 'list_notifications'); render_page($user, $TAB, 'list_notifications');

View file

@ -15,6 +15,7 @@ if ($_SESSION['user'] != 'admin') {
// Data // Data
exec (VESTA_CMD."v-list-user-packages json", $output, $return_var); exec (VESTA_CMD."v-list-user-packages json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) $data = array();
unset($output); unset($output);
// Render page // Render page

View file

@ -18,6 +18,7 @@ if (!empty($_GET['period'])) {
// Data // Data
exec (VESTA_CMD."v-list-sys-rrd json", $output, $return_var); exec (VESTA_CMD."v-list-sys-rrd json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) $data = array();
unset($output); unset($output);
// Render page // Render page

View file

@ -116,9 +116,11 @@ if (isset($_GET['db'])) {
// Data // Data
exec (VESTA_CMD."v-list-sys-info json", $output, $return_var); exec (VESTA_CMD."v-list-sys-info json", $output, $return_var);
$sys = json_decode(implode('', $output), true); $sys = json_decode(implode('', $output), true);
if (!is_array($sys)) $sys = array();
unset($output); unset($output);
exec (VESTA_CMD."v-list-sys-services json", $output, $return_var); exec (VESTA_CMD."v-list-sys-services json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) $data = array();
unset($output); unset($output);
// Render page // Render page

View file

@ -10,13 +10,13 @@ if ($user == 'admin') {
if (empty($_GET['user'])) { if (empty($_GET['user'])) {
exec (VESTA_CMD."v-list-users-stats json", $output, $return_var); exec (VESTA_CMD."v-list-users-stats json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
} else { } else {
$v_user = escapeshellarg($_GET['user']); $v_user = escapeshellarg($_GET['user']);
exec (VESTA_CMD."v-list-user-stats $v_user json", $output, $return_var); exec (VESTA_CMD."v-list-user-stats $v_user json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
} }
@ -26,7 +26,7 @@ if ($user == 'admin') {
} else { } else {
exec (VESTA_CMD."v-list-user-stats $user json", $output, $return_var); exec (VESTA_CMD."v-list-user-stats $user json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data, true); $data = is_array($data) ? array_reverse($data, true) : array();
unset($output); unset($output);
} }

View file

@ -14,6 +14,7 @@ if ($_SESSION['user'] != 'admin') {
// Data // Data
exec (VESTA_CMD."v-list-sys-vesta-updates json", $output, $return_var); exec (VESTA_CMD."v-list-sys-vesta-updates json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) $data = array();
unset($output); unset($output);
exec (VESTA_CMD."v-list-sys-vesta-autoupdate plain", $output, $return_var); exec (VESTA_CMD."v-list-sys-vesta-autoupdate plain", $output, $return_var);
$autoupdate = $output['0']; $autoupdate = $output['0'];

View file

@ -12,7 +12,7 @@ if ($user == 'admin') {
exec (VESTA_CMD . "v-list-user ".$user." json", $output, $return_var); exec (VESTA_CMD . "v-list-user ".$user." json", $output, $return_var);
} }
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data,true) : array();
// Check and get changelog if needed // Check and get changelog if needed
if ($user == 'admin') { if ($user == 'admin') {

View file

@ -8,7 +8,7 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
// Data // Data
exec (VESTA_CMD."v-list-web-domains $user json", $output, $return_var); exec (VESTA_CMD."v-list-web-domains $user json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data,true) : array();
$ips = json_decode(shell_exec(VESTA_CMD.'v-list-sys-ips json'), true); $ips = json_decode(shell_exec(VESTA_CMD.'v-list-sys-ips json'), true);
// Render page // Render page

View file

@ -28,6 +28,7 @@ if (isset($_SESSION['user'])) {
exec (VESTA_CMD . "v-list-user ".escapeshellarg($_GET['loginas'])." json", $output, $return_var); exec (VESTA_CMD . "v-list-user ".escapeshellarg($_GET['loginas'])." json", $output, $return_var);
if ( $return_var == 0 ) { if ( $return_var == 0 ) {
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) { $data = array(); }
reset($data); reset($data);
$_SESSION['look'] = key($data); $_SESSION['look'] = key($data);
$_SESSION['look_alert'] = 'yes'; $_SESSION['look_alert'] = 'yes';
@ -52,6 +53,7 @@ if (isset($_POST['user']) && isset($_POST['password'])) {
$output = ''; $output = '';
exec (VESTA_CMD."v-get-user-salt ".$v_user." ".$v_ip." json" , $output, $return_var); exec (VESTA_CMD."v-get-user-salt ".$v_user." ".$v_ip." json" , $output, $return_var);
$pam = json_decode(implode('', $output), true); $pam = json_decode(implode('', $output), true);
if (!is_array($pam)) $pam = array();
if ( $return_var > 0 ) { if ( $return_var > 0 ) {
$ERROR = "<a class=\"error\">".__('Invalid username or password')."</a>"; $ERROR = "<a class=\"error\">".__('Invalid username or password')."</a>";
} else { } else {
@ -95,6 +97,7 @@ if (isset($_POST['user']) && isset($_POST['password'])) {
// Get user speciefic parameters // Get user speciefic parameters
exec (VESTA_CMD . "v-list-user ".$v_user." json", $output, $return_var); exec (VESTA_CMD . "v-list-user ".$v_user." json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) $data = array();
// Define session user // Define session user
$_SESSION['user'] = key($data); $_SESSION['user'] = key($data);
@ -107,7 +110,8 @@ if (isset($_POST['user']) && isset($_POST['password'])) {
$output = ''; $output = '';
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var); exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
$languages = json_decode(implode('', $output), true); $languages = json_decode(implode('', $output), true);
if (in_array($data[$v_user]['LANGUAGE'], $languages)){ if (!is_array($languages)) $languages = array();
if (isset($data[$v_user]['LANGUAGE']) && in_array($data[$v_user]['LANGUAGE'], $languages)){
$_SESSION['language'] = $data[$v_user]['LANGUAGE']; $_SESSION['language'] = $data[$v_user]['LANGUAGE'];
} else { } else {
$_SESSION['language'] = 'en'; $_SESSION['language'] = 'en';
@ -136,6 +140,7 @@ if (isset($_POST['user']) && isset($_POST['password'])) {
// Check system configuration // Check system configuration
exec (VESTA_CMD . "v-list-sys-config json", $output, $return_var); exec (VESTA_CMD . "v-list-sys-config json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) $data = array('config' => array());
$sys_arr = $data['config']; $sys_arr = $data['config'];
foreach ($sys_arr as $key => $value) { foreach ($sys_arr as $key => $value) {
$_SESSION[$key] = $value; $_SESSION[$key] = $value;
@ -146,11 +151,13 @@ if (empty($_SESSION['language'])) {
$output = ''; $output = '';
exec (VESTA_CMD."v-list-sys-config json", $output, $return_var); exec (VESTA_CMD."v-list-sys-config json", $output, $return_var);
$config = json_decode(implode('', $output), true); $config = json_decode(implode('', $output), true);
if (!is_array($config)) $config = array('config' => array('LANGUAGE' => 'en'));
$lang = $config['config']['LANGUAGE']; $lang = $config['config']['LANGUAGE'];
$output = ''; $output = '';
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var); exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
$languages = json_decode(implode('', $output), true); $languages = json_decode(implode('', $output), true);
if (!is_array($languages)) $languages = array();
if(in_array($lang, $languages)){ if(in_array($lang, $languages)){
$_SESSION['language'] = $lang; $_SESSION['language'] = $lang;
} }

View file

@ -25,13 +25,14 @@ if ((!empty($_POST['user'])) && (empty($_POST['code']))) {
exec ($cmd." ".$v_user." json", $output, $return_var); exec ($cmd." ".$v_user." json", $output, $return_var);
if ( $return_var == 0 ) { if ( $return_var == 0 ) {
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) { $data = array(); }
unset($output); unset($output);
exec("/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEYEXP", $output, $return_var); exec("/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEYEXP", $output, $return_var);
$rkeyexp = trim(implode('', $output)); $rkeyexp = trim(implode('', $output));
if (strlen($rkeyexp)>9) $rkeyexp=intval($rkeyexp); if (strlen($rkeyexp)>9) $rkeyexp=intval($rkeyexp);
unset($output); unset($output);
if ($rkeyexp === null || $rkeyexp < time() - 900) { if ($rkeyexp === null || $rkeyexp < time() - 900) {
if ($email == $data[$user]['CONTACT']) { if (isset($data[$user]['CONTACT']) && $email == $data[$user]['CONTACT']) {
exec("/usr/bin/sudo /usr/local/vesta/bin/v-change-user-rkey ".$v_user, $output, $return_var); exec("/usr/bin/sudo /usr/local/vesta/bin/v-change-user-rkey ".$v_user, $output, $return_var);
unset($output); unset($output);
$CMD="/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEY"; $CMD="/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEY";
@ -41,10 +42,10 @@ if ((!empty($_POST['user'])) && (empty($_POST['code']))) {
//echo $rkey; exit; //echo $rkey; exit;
//echo $CMD."\n<br />"; //echo $CMD."\n<br />";
//var_dump($rkey); exit; //var_dump($rkey); exit;
$fname = $data[$user]['FNAME']; $fname = isset($data[$user]['FNAME']) ? $data[$user]['FNAME'] : '';
$lname = $data[$user]['LNAME']; $lname = isset($data[$user]['LNAME']) ? $data[$user]['LNAME'] : '';
$contact = $data[$user]['CONTACT']; $contact = isset($data[$user]['CONTACT']) ? $data[$user]['CONTACT'] : '';
$to = $data[$user]['CONTACT']; $to = isset($data[$user]['CONTACT']) ? $data[$user]['CONTACT'] : '';
$subject = __('MAIL_RESET_SUBJECT',date("Y-m-d H:i:s")); $subject = __('MAIL_RESET_SUBJECT',date("Y-m-d H:i:s"));
$hostname = exec('hostname'); $hostname = exec('hostname');
$from = __('MAIL_FROM',$hostname); $from = __('MAIL_FROM',$hostname);
@ -85,8 +86,9 @@ if ((!empty($_POST['user'])) && (!empty($_POST['code'])) && (!empty($_POST['pass
exec ($cmd." ".$v_user." json", $output, $return_var); exec ($cmd." ".$v_user." json", $output, $return_var);
if ( $return_var == 0 ) { if ( $return_var == 0 ) {
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) { $data = array(); }
unset($output); unset($output);
$rkey = $data[$user]['RKEY']; $rkey = isset($data[$user]['RKEY']) ? $data[$user]['RKEY'] : '';
if (hash_equals($rkey, $_POST['code'])) { if (hash_equals($rkey, $_POST['code'])) {
unset($output); unset($output);
exec("/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEYEXP", $output, $return_var); exec("/usr/bin/sudo /usr/local/vesta/bin/v-get-user-value ".$v_user." RKEYEXP", $output, $return_var);

View file

@ -28,6 +28,7 @@ $command = $_SESSION['user'] == 'admin'
exec (VESTA_CMD . $command, $output, $return_var); exec (VESTA_CMD . $command, $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
if (!is_array($data)) $data = array();
// Render page // Render page
render_page($user, $TAB, 'list_search'); render_page($user, $TAB, 'list_search');

View file

@ -253,7 +253,7 @@
</tr> </tr>
<tr> <tr>
<td class="vst-text step-top"> <td class="vst-text step-top">
<label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp) && count($v_ftp_users)) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp) && (is_array($v_ftp_users) && count($v_ftp_users))) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>

View file

@ -74,7 +74,7 @@
<!-- /.l-unit__col --> <!-- /.l-unit__col -->
<div class="l-unit__col l-unit__col--right"> <div class="l-unit__col l-unit__col--right">
<div class="l-unit__name separate"> <div class="l-unit__name separate">
<?=__(strftime("%b", strtotime($key))).strftime(" %Y", strtotime($key))?> <?php echo __(date('M', strtotime($key))).date(' Y', strtotime($key)); ?>
</div> </div>

View file

@ -64,7 +64,7 @@
$output=''; $output='';
exec (VESTA_CMD . "v-list-user ".$GLOBALS['CURRENT_USER_FINAL']." json", $output, $return_var); exec (VESTA_CMD . "v-list-user ".$GLOBALS['CURRENT_USER_FINAL']." json", $output, $return_var);
$data = json_decode(implode('', $output), true); $data = json_decode(implode('', $output), true);
$data = array_reverse($data,true); $data = is_array($data) ? array_reverse($data,true) : array();
//print_r($data); exit; //print_r($data); exit;
$key=$GLOBALS['CURRENT_USER_FINAL']; $key=$GLOBALS['CURRENT_USER_FINAL'];
if ($data[$key]['DISK_QUOTA']=='unlimited') echo __('unlimited'); if ($data[$key]['DISK_QUOTA']=='unlimited') echo __('unlimited');

View file

@ -77,7 +77,7 @@
<!-- /.l-unit__col --> <!-- /.l-unit__col -->
<div class="l-unit__col l-unit__col--right"> <div class="l-unit__col l-unit__col--right">
<div class="l-unit__name separate"> <div class="l-unit__name separate">
<?=__(strftime("%b", strtotime($key))).strftime(" %Y", strtotime($key))?> <?php echo __(date('M', strtotime($key))).date(' Y', strtotime($key)); ?>
</div> </div>