|
|
@@ -0,0 +1,810 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+header('Access-Control-Allow-Origin : http://localhost:3000');
|
|
|
+header('Access-Control-Allow-Credentials : true');
|
|
|
+header('Access-Control-Allow-Methods : GET, POST, OPTIONS');
|
|
|
+header("Access-Control-Allow-Headers : Origin, Content-Type, Accept");
|
|
|
+
|
|
|
+error_reporting(NULL);
|
|
|
+ob_start();
|
|
|
+unset($_SESSION['error_msg']);
|
|
|
+$TAB = 'WEB';
|
|
|
+
|
|
|
+
|
|
|
+// Main include
|
|
|
+include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
|
|
+
|
|
|
+// Check domain argument
|
|
|
+if (empty($_GET['domain'])) {
|
|
|
+ exit;
|
|
|
+}
|
|
|
+
|
|
|
+// Edit as someone else?
|
|
|
+if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
|
|
+ $user=escapeshellarg($_GET['user']);
|
|
|
+}
|
|
|
+
|
|
|
+// List domain
|
|
|
+$v_domain = escapeshellarg($_GET['domain']);
|
|
|
+exec (VESTA_CMD."v-list-web-domain ".$user." ".$v_domain." json", $output, $return_var);
|
|
|
+$data = json_decode(implode('', $output), true);
|
|
|
+unset($output);
|
|
|
+
|
|
|
+// Parse domain
|
|
|
+$v_username = $user;
|
|
|
+$v_domain = $_GET['domain'];
|
|
|
+$v_ip = $data[$v_domain]['IP'];
|
|
|
+$v_template = $data[$v_domain]['TPL'];
|
|
|
+$v_aliases = str_replace(',', "\n", $data[$v_domain]['ALIAS']);
|
|
|
+$valiases = explode(",", $data[$v_domain]['ALIAS']);
|
|
|
+$v_tpl = $data[$v_domain]['IP'];
|
|
|
+$v_cgi = $data[$v_domain]['CGI'];
|
|
|
+$v_elog = $data[$v_domain]['ELOG'];
|
|
|
+$v_ssl = $data[$v_domain]['SSL'];
|
|
|
+if (!empty($v_ssl)) {
|
|
|
+ exec (VESTA_CMD."v-list-web-domain-ssl ".$user." ".escapeshellarg($v_domain)." json", $output, $return_var);
|
|
|
+ $ssl_str = json_decode(implode('', $output), true);
|
|
|
+ unset($output);
|
|
|
+ $v_ssl_crt = $ssl_str[$v_domain]['CRT'];
|
|
|
+ $v_ssl_key = $ssl_str[$v_domain]['KEY'];
|
|
|
+ $v_ssl_ca = $ssl_str[$v_domain]['CA'];
|
|
|
+ $v_ssl_subject = $ssl_str[$v_domain]['SUBJECT'];
|
|
|
+ $v_ssl_aliases = $ssl_str[$v_domain]['ALIASES'];
|
|
|
+ $v_ssl_not_before = $ssl_str[$v_domain]['NOT_BEFORE'];
|
|
|
+ $v_ssl_not_after = $ssl_str[$v_domain]['NOT_AFTER'];
|
|
|
+ $v_ssl_signature = $ssl_str[$v_domain]['SIGNATURE'];
|
|
|
+ $v_ssl_pub_key = $ssl_str[$v_domain]['PUB_KEY'];
|
|
|
+ $v_ssl_issuer = $ssl_str[$v_domain]['ISSUER'];
|
|
|
+}
|
|
|
+$v_letsencrypt = $data[$v_domain]['LETSENCRYPT'];
|
|
|
+if (empty($v_letsencrypt)) $v_letsencrypt = 'no';
|
|
|
+$v_ssl_home = $data[$v_domain]['SSL_HOME'];
|
|
|
+$v_backend_template = $data[$v_domain]['BACKEND'];
|
|
|
+$v_proxy = $data[$v_domain]['PROXY'];
|
|
|
+$v_proxy_template = $data[$v_domain]['PROXY'];
|
|
|
+$v_proxy_ext = str_replace(',', ', ', $data[$v_domain]['PROXY_EXT']);
|
|
|
+$v_stats = $data[$v_domain]['STATS'];
|
|
|
+$v_stats_user = $data[$v_domain]['STATS_USER'];
|
|
|
+if (!empty($v_stats_user)) $v_stats_password = "";
|
|
|
+$v_ftp_user = $data[$v_domain]['FTP_USER'];
|
|
|
+$v_ftp_path = $data[$v_domain]['FTP_PATH'];
|
|
|
+if (!empty($v_ftp_user)) $v_ftp_password = "";
|
|
|
+$v_ftp_user_prepath = $data[$v_domain]['DOCUMENT_ROOT'];
|
|
|
+$v_ftp_user_prepath = str_replace('/public_html', '', $v_ftp_user_prepath, $occurance = 1);
|
|
|
+$v_ftp_email = $panel[$user]['CONTACT'];
|
|
|
+$v_suspended = $data[$v_domain]['SUSPENDED'];
|
|
|
+if ( $v_suspended == 'yes' ) {
|
|
|
+ $v_status = 'suspended';
|
|
|
+} else {
|
|
|
+ $v_status = 'active';
|
|
|
+}
|
|
|
+$v_time = $data[$v_domain]['TIME'];
|
|
|
+$v_date = $data[$v_domain]['DATE'];
|
|
|
+
|
|
|
+// List ip addresses
|
|
|
+exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
|
|
|
+$ips = json_decode(implode('', $output), true);
|
|
|
+unset($output);
|
|
|
+
|
|
|
+// List web templates
|
|
|
+exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
|
|
|
+$templates = json_decode(implode('', $output), true);
|
|
|
+unset($output);
|
|
|
+
|
|
|
+// List backend templates
|
|
|
+if (!empty($_SESSION['WEB_BACKEND'])) {
|
|
|
+ exec (VESTA_CMD."v-list-web-templates-backend json", $output, $return_var);
|
|
|
+ $backend_templates = json_decode(implode('', $output), true);
|
|
|
+ unset($output);
|
|
|
+}
|
|
|
+
|
|
|
+// List proxy templates
|
|
|
+if (!empty($_SESSION['PROXY_SYSTEM'])) {
|
|
|
+ exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
|
|
|
+ $proxy_templates = json_decode(implode('', $output), true);
|
|
|
+ unset($output);
|
|
|
+}
|
|
|
+
|
|
|
+// List web stat engines
|
|
|
+exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
|
|
|
+$stats = json_decode(implode('', $output), true);
|
|
|
+unset($output);
|
|
|
+
|
|
|
+// Check POST request
|
|
|
+if (!empty($_POST['save'])) {
|
|
|
+ $v_domain = escapeshellarg($_POST['v_domain']);
|
|
|
+
|
|
|
+ // Check token
|
|
|
+ if ((!isset($_POST['token'])) || ($_SESSION['token'] != $_POST['token'])) {
|
|
|
+ header('location: /login/');
|
|
|
+ exit();
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change web domain IP
|
|
|
+ if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) {
|
|
|
+ $v_ip = escapeshellarg($_POST['v_ip']);
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-ip ".$v_username." ".$v_domain." ".$v_ip." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ unset($output);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Chane dns domain IP
|
|
|
+ if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-list-dns-domain ".$v_username." ".$v_domain." json", $output, $return_var);
|
|
|
+ unset($output);
|
|
|
+ if ($return_var == 0 ) {
|
|
|
+ $v_ip = escapeshellarg($_POST['v_ip']);
|
|
|
+ exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." ".$v_domain." ".$v_ip." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $restart_dns = 'yes';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change dns ip for each alias
|
|
|
+ if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) {
|
|
|
+ foreach($valiases as $v_alias ){
|
|
|
+ $v_alias = escapeshellarg($v_alias);
|
|
|
+ exec (VESTA_CMD."v-list-dns-domain ".$v_username." ".$v_alias." json", $output, $return_var);
|
|
|
+ unset($output);
|
|
|
+ if ($return_var == 0 ) {
|
|
|
+ $v_ip = escapeshellarg($_POST['v_ip']);
|
|
|
+ exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." ".$v_alias." ".$v_ip, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $restart_dns = 'yes';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change template (admin only)
|
|
|
+ if (($v_template != $_POST['v_template']) && ( $_SESSION['user'] == 'admin') && (empty($_SESSION['error_msg']))) {
|
|
|
+ $v_template = escapeshellarg($_POST['v_template']);
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-tpl ".$v_username." ".$v_domain." ".$v_template." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $restart_web = 'yes';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change aliases
|
|
|
+ if (empty($_SESSION['error_msg'])) {
|
|
|
+ $waliases = preg_replace("/\n/", " ", $_POST['v_aliases']);
|
|
|
+ $waliases = preg_replace("/,/", " ", $waliases);
|
|
|
+ $waliases = preg_replace('/\s+/', ' ',$waliases);
|
|
|
+ $waliases = trim($waliases);
|
|
|
+ $aliases = explode(" ", $waliases);
|
|
|
+ $v_aliases = str_replace(' ', "\n", $waliases);
|
|
|
+ $result = array_diff($valiases, $aliases);
|
|
|
+ foreach ($result as $alias) {
|
|
|
+ if ((empty($_SESSION['error_msg'])) && (!empty($alias))) {
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ $v_template = escapeshellarg($_POST['v_template']);
|
|
|
+ $alias = escapeshellarg($alias);
|
|
|
+ exec (VESTA_CMD."v-delete-web-domain-alias ".$v_username." ".$v_domain." ".$alias." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+
|
|
|
+ if (empty($_SESSION['error_msg'])) {
|
|
|
+ exec (VESTA_CMD."v-list-dns-domain ".$v_username." ".$v_domain, $output, $return_var);
|
|
|
+ unset($output);
|
|
|
+ if ($return_var == 0) {
|
|
|
+ exec (VESTA_CMD."v-delete-dns-on-web-alias ".$v_username." ".$v_domain." ".$alias." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $restart_dns = 'yes';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = array_diff($aliases, $valiases);
|
|
|
+ foreach ($result as $alias) {
|
|
|
+ if ((empty($_SESSION['error_msg'])) && (!empty($alias))) {
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ $v_template = escapeshellarg($_POST['v_template']);
|
|
|
+ $alias = escapeshellarg($alias);
|
|
|
+ exec (VESTA_CMD."v-add-web-domain-alias ".$v_username." ".$v_domain." ".$alias." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ if (empty($_SESSION['error_msg'])) {
|
|
|
+ exec (VESTA_CMD."v-list-dns-domain ".$v_username." ".$v_domain, $output, $return_var);
|
|
|
+ unset($output);
|
|
|
+ if ($return_var == 0) {
|
|
|
+ exec (VESTA_CMD."v-add-dns-on-web-alias ".$v_username." ".$alias." ".$v_ip." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $restart_dns = 'yes';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change backend template
|
|
|
+ if ((!empty($_SESSION['WEB_BACKEND'])) && ( $v_backend_template != $_POST['v_backend_template']) && ( $_SESSION['user'] == 'admin') && (empty($_SESSION['error_msg']))) {
|
|
|
+ $v_backend_template = $_POST['v_backend_template'];
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-backend-tpl ".$v_username." ".$v_domain." ".escapeshellarg($v_backend_template), $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Delete proxy support
|
|
|
+ if ((!empty($_SESSION['PROXY_SYSTEM'])) && (!empty($v_proxy)) && (empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-delete-web-domain-proxy ".$v_username." ".$v_domain." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ unset($v_proxy);
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change proxy template / Update extension list (admin only)
|
|
|
+ if ((!empty($_SESSION['PROXY_SYSTEM'])) && (!empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg'])) && ($_SESSION['user'] == 'admin')) {
|
|
|
+ $ext = preg_replace("/\n/", " ", $_POST['v_proxy_ext']);
|
|
|
+ $ext = preg_replace("/,/", " ", $ext);
|
|
|
+ $ext = preg_replace('/\s+/', ' ',$ext);
|
|
|
+ $ext = trim($ext);
|
|
|
+ $ext = str_replace(' ', ", ", $ext);
|
|
|
+ if (( $v_proxy_template != $_POST['v_proxy_template']) || ($v_proxy_ext != $ext)) {
|
|
|
+ $ext = str_replace(', ', ",", $ext);
|
|
|
+ if (!empty($_POST['v_proxy_template'])) $v_proxy_template = $_POST['v_proxy_template'];
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-proxy-tpl ".$v_username." ".$v_domain." ".escapeshellarg($v_proxy_template)." ".escapeshellarg($ext)." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ $v_proxy_ext = str_replace(',', ', ', $ext);
|
|
|
+ unset($output);
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add proxy support
|
|
|
+ if ((!empty($_SESSION['PROXY_SYSTEM'])) && (empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ $v_proxy_template = $_POST['v_proxy_template'];
|
|
|
+ if (!empty($_POST['v_proxy_ext'])) {
|
|
|
+ $ext = preg_replace("/\n/", " ", $_POST['v_proxy_ext']);
|
|
|
+ $ext = preg_replace("/,/", " ", $ext);
|
|
|
+ $ext = preg_replace('/\s+/', ' ',$ext);
|
|
|
+ $ext = trim($ext);
|
|
|
+ $ext = str_replace(' ', ",", $ext);
|
|
|
+ $v_proxy_ext = str_replace(',', ', ', $ext);
|
|
|
+ }
|
|
|
+ exec (VESTA_CMD."v-add-web-domain-proxy ".$v_username." ".$v_domain." ".escapeshellarg($v_proxy_template)." ".escapeshellarg($ext)." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change document root for ssl domain
|
|
|
+ if (( $v_ssl == 'yes') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ if ( $v_ssl_home != $_POST['v_ssl_home'] ) {
|
|
|
+ $v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-sslhome ".$user." ".$v_domain." ".$v_ssl_home." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ $v_ssl_home = $_POST['v_ssl_home'];
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ unset($output);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change SSL certificate
|
|
|
+ if (( $v_letsencrypt == 'no' ) && (empty($_POST['v_letsencrypt'])) && ( $v_ssl == 'yes' ) && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ if (( $v_ssl_crt != str_replace("\r\n", "\n", $_POST['v_ssl_crt'])) || ( $v_ssl_key != str_replace("\r\n", "\n", $_POST['v_ssl_key'])) || ( $v_ssl_ca != str_replace("\r\n", "\n", $_POST['v_ssl_ca']))) {
|
|
|
+ exec ('mktemp -d', $mktemp_output, $return_var);
|
|
|
+ $tmpdir = $mktemp_output[0];
|
|
|
+
|
|
|
+ // Certificate
|
|
|
+ if (!empty($_POST['v_ssl_crt'])) {
|
|
|
+ $fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w');
|
|
|
+ fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
|
|
|
+ fwrite($fp, "\n");
|
|
|
+ fclose($fp);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Key
|
|
|
+ if (!empty($_POST['v_ssl_key'])) {
|
|
|
+ $fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w');
|
|
|
+ fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
|
|
|
+ fwrite($fp, "\n");
|
|
|
+ fclose($fp);
|
|
|
+ }
|
|
|
+
|
|
|
+ // CA
|
|
|
+ if (!empty($_POST['v_ssl_ca'])) {
|
|
|
+ $fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w');
|
|
|
+ fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca']));
|
|
|
+ fwrite($fp, "\n");
|
|
|
+ fclose($fp);
|
|
|
+ }
|
|
|
+
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-sslcert ".$user." ".$v_domain." ".$tmpdir." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+
|
|
|
+ exec (VESTA_CMD."v-list-web-domain-ssl ".$user." ".$v_domain." json", $output, $return_var);
|
|
|
+ $ssl_str = json_decode(implode('', $output), true);
|
|
|
+ unset($output);
|
|
|
+ $v_ssl_crt = $ssl_str[$v_domain]['CRT'];
|
|
|
+ $v_ssl_key = $ssl_str[$v_domain]['KEY'];
|
|
|
+ $v_ssl_ca = $ssl_str[$v_domain]['CA'];
|
|
|
+ $v_ssl_subject = $ssl_str[$v_domain]['SUBJECT'];
|
|
|
+ $v_ssl_aliases = $ssl_str[$v_domain]['ALIASES'];
|
|
|
+ $v_ssl_not_before = $ssl_str[$v_domain]['NOT_BEFORE'];
|
|
|
+ $v_ssl_not_after = $ssl_str[$v_domain]['NOT_AFTER'];
|
|
|
+ $v_ssl_signature = $ssl_str[$v_domain]['SIGNATURE'];
|
|
|
+ $v_ssl_pub_key = $ssl_str[$v_domain]['PUB_KEY'];
|
|
|
+ $v_ssl_issuer = $ssl_str[$v_domain]['ISSUER'];
|
|
|
+
|
|
|
+ // Cleanup certificate tempfiles
|
|
|
+ if (!empty($_POST['v_ssl_crt'])) unlink($tmpdir."/".$_POST['v_domain'].".crt");
|
|
|
+ if (!empty($_POST['v_ssl_key'])) unlink($tmpdir."/".$_POST['v_domain'].".key");
|
|
|
+ if (!empty($_POST['v_ssl_ca'])) unlink($tmpdir."/".$_POST['v_domain'].".ca");
|
|
|
+ rmdir($tmpdir);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Delete Lets Encrypt support
|
|
|
+ if (( $v_letsencrypt == 'yes' ) && (empty($_POST['v_letsencrypt'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-delete-letsencrypt-domain ".$user." ".$v_domain." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $v_ssl_crt = '';
|
|
|
+ $v_ssl_key = '';
|
|
|
+ $v_ssl_ca = '';
|
|
|
+ $v_letsencrypt = 'no';
|
|
|
+ $v_letsencrypt_deleted = 'yes';
|
|
|
+ $v_ssl = 'no';
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Delete SSL certificate
|
|
|
+ if (( $v_ssl == 'yes' ) && (empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-delete-web-domain-ssl ".$v_username." ".$v_domain." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $v_ssl_crt = '';
|
|
|
+ $v_ssl_key = '';
|
|
|
+ $v_ssl_ca = '';
|
|
|
+ $v_ssl = 'no';
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add Lets Encrypt support
|
|
|
+ if ((!empty($_POST['v_ssl'])) && ( $v_letsencrypt == 'no' ) && (!empty($_POST['v_letsencrypt'])) && empty($_SESSION['error_msg'])) {
|
|
|
+ $l_aliases = str_replace("\n", ',', $v_aliases);
|
|
|
+ exec (VESTA_CMD."v-add-letsencrypt-domain ".$user." ".$v_domain." ".escapeshellarg($l_aliases)." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $v_letsencrypt = 'yes';
|
|
|
+ $v_ssl = 'yes';
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add SSL certificate
|
|
|
+ if (( $v_ssl == 'no' ) && (!empty($_POST['v_ssl'])) && (empty($v_letsencrypt_deleted)) && (empty($_SESSION['error_msg']))) {
|
|
|
+ if (empty($_POST['v_ssl_crt'])) $errors[] = 'ssl certificate';
|
|
|
+ if (empty($_POST['v_ssl_key'])) $errors[] = 'ssl key';
|
|
|
+ if (empty($_POST['v_ssl_home'])) $errors[] = 'ssl home';
|
|
|
+ $v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
|
|
|
+ if (!empty($errors[0])) {
|
|
|
+ foreach ($errors as $i => $error) {
|
|
|
+ if ( $i == 0 ) {
|
|
|
+ $error_msg = $error;
|
|
|
+ } else {
|
|
|
+ $error_msg = $error_msg.", ".$error;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
|
|
+ } else {
|
|
|
+ exec ('mktemp -d', $mktemp_output, $return_var);
|
|
|
+ $tmpdir = $mktemp_output[0];
|
|
|
+
|
|
|
+ // Certificate
|
|
|
+ if (!empty($_POST['v_ssl_crt'])) {
|
|
|
+ $fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w');
|
|
|
+ fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
|
|
|
+ fclose($fp);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Key
|
|
|
+ if (!empty($_POST['v_ssl_key'])) {
|
|
|
+ $fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w');
|
|
|
+ fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
|
|
|
+ fclose($fp);
|
|
|
+ }
|
|
|
+
|
|
|
+ // CA
|
|
|
+ if (!empty($_POST['v_ssl_ca'])) {
|
|
|
+ $fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w');
|
|
|
+ fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca']));
|
|
|
+ fclose($fp);
|
|
|
+ }
|
|
|
+ exec (VESTA_CMD."v-add-web-domain-ssl ".$user." ".$v_domain." ".$tmpdir." ".$v_ssl_home." no", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $v_ssl = 'yes';
|
|
|
+ $restart_web = 'yes';
|
|
|
+ $restart_proxy = 'yes';
|
|
|
+
|
|
|
+ exec (VESTA_CMD."v-list-web-domain-ssl ".$user." ".$v_domain." json", $output, $return_var);
|
|
|
+ $ssl_str = json_decode(implode('', $output), true);
|
|
|
+ unset($output);
|
|
|
+ $v_ssl_crt = $ssl_str[$_POST['v_domain']]['CRT'];
|
|
|
+ $v_ssl_key = $ssl_str[$_POST['v_domain']]['KEY'];
|
|
|
+ $v_ssl_ca = $ssl_str[$_POST['v_domain']]['CA'];
|
|
|
+ $v_ssl_subject = $ssl_str[$_POST['v_domain']]['SUBJECT'];
|
|
|
+ $v_ssl_aliases = $ssl_str[$_POST['v_domain']]['ALIASES'];
|
|
|
+ $v_ssl_not_before = $ssl_str[$_POST['v_domain']]['NOT_BEFORE'];
|
|
|
+ $v_ssl_not_after = $ssl_str[$_POST['v_domain']]['NOT_AFTER'];
|
|
|
+ $v_ssl_signature = $ssl_str[$_POST['v_domain']]['SIGNATURE'];
|
|
|
+ $v_ssl_pub_key = $ssl_str[$_POST['v_domain']]['PUB_KEY'];
|
|
|
+ $v_ssl_issuer = $ssl_str[$_POST['v_domain']]['ISSUER'];
|
|
|
+
|
|
|
+ // Cleanup certificate tempfiles
|
|
|
+ if (!empty($_POST['v_ssl_crt'])) unlink($tmpdir."/".$_POST['v_domain'].".crt");
|
|
|
+ if (!empty($_POST['v_ssl_key'])) unlink($tmpdir."/".$_POST['v_domain'].".key");
|
|
|
+ if (!empty($_POST['v_ssl_ca'])) unlink($tmpdir."/".$_POST['v_domain'].".ca");
|
|
|
+ rmdir($tmpdir);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // Delete web stats
|
|
|
+ if ((!empty($v_stats)) && ($_POST['v_stats'] == 'none') && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-delete-web-domain-stats ".$v_username." ".$v_domain, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $v_stats = '';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change web stats engine
|
|
|
+ if ((!empty($v_stats)) && ($_POST['v_stats'] != $v_stats) && (empty($_SESSION['error_msg']))) {
|
|
|
+ $v_stats = escapeshellarg($_POST['v_stats']);
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add web stats
|
|
|
+ if ((empty($v_stats)) && ($_POST['v_stats'] != 'none') && (empty($_SESSION['error_msg']))) {
|
|
|
+ $v_stats = escapeshellarg($_POST['v_stats']);
|
|
|
+ exec (VESTA_CMD."v-add-web-domain-stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Delete web stats authorization
|
|
|
+ if ((!empty($v_stats_user)) && (empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-delete-web-domain-stats-user ".$v_username." ".$v_domain, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ $v_stats_user = '';
|
|
|
+ $v_stats_password = '';
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change web stats user or password
|
|
|
+ if ((empty($v_stats_user)) && (!empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ if (empty($_POST['v_stats_user'])) $errors[] = __('stats username');
|
|
|
+ if (!empty($errors[0])) {
|
|
|
+ foreach ($errors as $i => $error) {
|
|
|
+ if ( $i == 0 ) {
|
|
|
+ $error_msg = $error;
|
|
|
+ } else {
|
|
|
+ $error_msg = $error_msg.", ".$error;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
|
|
+ } else {
|
|
|
+ $v_stats_user = escapeshellarg($_POST['v_stats_user']);
|
|
|
+ $v_stats_password = tempnam("/tmp","vst");
|
|
|
+ $fp = fopen($v_stats_password, "w");
|
|
|
+ fwrite($fp, $_POST['v_stats_password']."\n");
|
|
|
+ fclose($fp);
|
|
|
+ exec (VESTA_CMD."v-add-web-domain-stats-user ".$v_username." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ unlink($v_stats_password);
|
|
|
+ $v_stats_password = escapeshellarg($_POST['v_stats_password']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add web stats authorization
|
|
|
+ if ((!empty($v_stats_user)) && (!empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ if (empty($_POST['v_stats_user'])) $errors[] = __('stats user');
|
|
|
+ if (!empty($errors[0])) {
|
|
|
+ foreach ($errors as $i => $error) {
|
|
|
+ if ( $i == 0 ) {
|
|
|
+ $error_msg = $error;
|
|
|
+ } else {
|
|
|
+ $error_msg = $error_msg.", ".$error;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
|
|
+ }
|
|
|
+ if (($v_stats_user != $_POST['v_stats_user']) || (!empty($_POST['v_stats_password'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ $v_stats_user = escapeshellarg($_POST['v_stats_user']);
|
|
|
+ $v_stats_password = tempnam("/tmp","vst");
|
|
|
+ $fp = fopen($v_stats_password, "w");
|
|
|
+ fwrite($fp, $_POST['v_stats_password']."\n");
|
|
|
+ fclose($fp);
|
|
|
+ exec (VESTA_CMD."v-add-web-domain-stats-user ".$v_username." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ unlink($v_stats_password);
|
|
|
+ $v_stats_password = escapeshellarg($_POST['v_stats_password']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Update ftp account
|
|
|
+ if (!empty($_POST['v_ftp_user'])) {
|
|
|
+ $v_ftp_users_updated = array();
|
|
|
+ foreach ($_POST['v_ftp_user'] as $i => $v_ftp_user_data) {
|
|
|
+ if (empty($v_ftp_user_data['v_ftp_user'])) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ $v_ftp_user_data['v_ftp_user'] = preg_replace("/^".$user."_/i", "", $v_ftp_user_data['v_ftp_user']);
|
|
|
+ if ($v_ftp_user_data['is_new'] == 1 && !empty($_POST['v_ftp'])) {
|
|
|
+ if ((!empty($v_ftp_user_data['v_ftp_email'])) && (!filter_var($v_ftp_user_data['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = __('Please enter valid email address.');
|
|
|
+ if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = 'ftp user';
|
|
|
+ if (!empty($errors[0])) {
|
|
|
+ foreach ($errors as $i => $error) {
|
|
|
+ if ( $i == 0 ) {
|
|
|
+ $error_msg = $error;
|
|
|
+ } else {
|
|
|
+ $error_msg = $error_msg.", ".$error;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add ftp account
|
|
|
+ $v_ftp_username = $v_ftp_user_data['v_ftp_user'];
|
|
|
+ $v_ftp_username_full = $user . '_' . $v_ftp_user_data['v_ftp_user'];
|
|
|
+ $v_ftp_user = escapeshellarg($v_ftp_username);
|
|
|
+ $v_ftp_path = escapeshellarg(trim($v_ftp_user_data['v_ftp_path']));
|
|
|
+ if (empty($_SESSION['error_msg'])) {
|
|
|
+ $v_ftp_password = tempnam("/tmp","vst");
|
|
|
+ $fp = fopen($v_ftp_password, "w");
|
|
|
+ fwrite($fp, $v_ftp_user_data['v_ftp_password']."\n");
|
|
|
+ fclose($fp);
|
|
|
+ exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password . " " . $v_ftp_path, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ if ((!empty($v_ftp_user_data['v_ftp_email'])) && (empty($_SESSION['error_msg']))) {
|
|
|
+ $to = $v_ftp_user_data['v_ftp_email'];
|
|
|
+ $subject = __("FTP login credentials");
|
|
|
+ $hostname = exec('hostname');
|
|
|
+ $from = __('MAIL_FROM',$hostname);
|
|
|
+ $mailtext = __('FTP_ACCOUNT_READY',$_GET['domain'],$user,$v_ftp_username,$v_ftp_user_data['v_ftp_password']);
|
|
|
+ send_email($to, $subject, $mailtext, $from);
|
|
|
+ unset($v_ftp_email);
|
|
|
+ }
|
|
|
+ unset($output);
|
|
|
+ unlink($v_ftp_password);
|
|
|
+ $v_ftp_password = escapeshellarg($v_ftp_user_data['v_ftp_password']);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($return_var == 0) {
|
|
|
+ $v_ftp_password = "";
|
|
|
+ $v_ftp_user_data['is_new'] = 0;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $v_ftp_user_data['is_new'] = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ $v_ftp_users_updated[] = array(
|
|
|
+ 'is_new' => empty($_SESSION['error_msg']) ? 0 : 1,
|
|
|
+ 'v_ftp_user' => $v_ftp_username_full,
|
|
|
+ 'v_ftp_password' => $v_ftp_password,
|
|
|
+ 'v_ftp_path' => $v_ftp_user_data['v_ftp_path'],
|
|
|
+ 'v_ftp_email' => $v_ftp_user_data['v_ftp_email'],
|
|
|
+ 'v_ftp_pre_path' => $v_ftp_user_prepath
|
|
|
+ );
|
|
|
+
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Delete FTP account
|
|
|
+ if ($v_ftp_user_data['delete'] == 1) {
|
|
|
+ $v_ftp_username = $user . '_' . $v_ftp_user_data['v_ftp_user'];
|
|
|
+ exec (VESTA_CMD."v-delete-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_username, $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!empty($_POST['v_ftp'])) {
|
|
|
+ if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = __('ftp user');
|
|
|
+ if (!empty($errors[0])) {
|
|
|
+ foreach ($errors as $i => $error) {
|
|
|
+ if ( $i == 0 ) {
|
|
|
+ $error_msg = $error;
|
|
|
+ } else {
|
|
|
+ $error_msg = $error_msg.", ".$error;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change FTP account path
|
|
|
+ $v_ftp_username_for_emailing = $v_ftp_user_data['v_ftp_user'];
|
|
|
+ $v_ftp_username = $user . '_' . $v_ftp_user_data['v_ftp_user']; //preg_replace("/^".$user."_/", "", $v_ftp_user_data['v_ftp_user']);
|
|
|
+ $v_ftp_username = escapeshellarg($v_ftp_username);
|
|
|
+ $v_ftp_path = escapeshellarg(trim($v_ftp_user_data['v_ftp_path']));
|
|
|
+ if(escapeshellarg(trim($v_ftp_user_data['v_ftp_path_prev'])) != $v_ftp_path) {
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-ftp-path ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_path, $output, $return_var);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Change FTP account password
|
|
|
+ if (!empty($v_ftp_user_data['v_ftp_password'])) {
|
|
|
+ $v_ftp_password = tempnam("/tmp","vst");
|
|
|
+ $fp = fopen($v_ftp_password, "w");
|
|
|
+ fwrite($fp, $v_ftp_user_data['v_ftp_password']."\n");
|
|
|
+ fclose($fp);
|
|
|
+ exec (VESTA_CMD."v-change-web-domain-ftp-password ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_password, $output, $return_var);
|
|
|
+ unlink($v_ftp_password);
|
|
|
+
|
|
|
+ $to = $v_ftp_user_data['v_ftp_email'];
|
|
|
+ $subject = __("FTP login credentials");
|
|
|
+ $hostname = exec('hostname');
|
|
|
+ $from = __('MAIL_FROM',$hostname);
|
|
|
+ $mailtext = __('FTP_ACCOUNT_READY',$_GET['domain'],$user,$v_ftp_username_for_emailing,$v_ftp_user_data['v_ftp_password']);
|
|
|
+ send_email($to, $subject, $mailtext, $from);
|
|
|
+ unset($v_ftp_email);
|
|
|
+ }
|
|
|
+ check_return_code($return_var, $output);
|
|
|
+ unset($output);
|
|
|
+
|
|
|
+ $v_ftp_users_updated[] = array(
|
|
|
+ 'is_new' => 0,
|
|
|
+ 'v_ftp_user' => $v_ftp_username,
|
|
|
+ 'v_ftp_password' => $v_ftp_user_data['v_ftp_password'],
|
|
|
+ 'v_ftp_path' => $v_ftp_user_data['v_ftp_path'],
|
|
|
+ 'v_ftp_email' => $v_ftp_user_data['v_ftp_email'],
|
|
|
+ 'v_ftp_pre_path' => $v_ftp_user_prepath
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Restart web server
|
|
|
+ if (!empty($restart_web) && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-restart-web", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Restart proxy server
|
|
|
+ if ((!empty($_SESSION['PROXY_SYSTEM'])) && !empty($restart_proxy) && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-restart-proxy", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Restart dns server
|
|
|
+ if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
|
|
|
+ exec (VESTA_CMD."v-restart-dns", $output, $return_var);
|
|
|
+ check_return_code($return_var,$output);
|
|
|
+ unset($output);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Set success message
|
|
|
+ if (empty($_SESSION['error_msg'])) {
|
|
|
+ $_SESSION['ok_msg'] = __('Changes has been saved.');
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+$v_ftp_users_raw = explode(':', $v_ftp_user);
|
|
|
+$v_ftp_users_paths_raw = explode(':', $data[$v_domain]['FTP_PATH']);
|
|
|
+$v_ftp_users = array();
|
|
|
+foreach ($v_ftp_users_raw as $v_ftp_user_index => $v_ftp_user_val) {
|
|
|
+ if (empty($v_ftp_user_val)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $v_ftp_users[] = array(
|
|
|
+ 'is_new' => 0,
|
|
|
+ 'v_ftp_user' => $v_ftp_user_val,
|
|
|
+ 'v_ftp_password' => $v_ftp_password,
|
|
|
+ 'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
|
|
|
+ 'v_ftp_email' => $v_ftp_email,
|
|
|
+ 'v_ftp_pre_path' => $v_ftp_user_prepath
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+if (empty($v_ftp_users)) {
|
|
|
+ $v_ftp_user = null;
|
|
|
+ $v_ftp_users[] = array(
|
|
|
+ 'is_new' => 1,
|
|
|
+ 'v_ftp_user' => '',
|
|
|
+ 'v_ftp_password' => '',
|
|
|
+ 'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
|
|
|
+ 'v_ftp_email' => '',
|
|
|
+ 'v_ftp_pre_path' => $v_ftp_user_prepath
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+// set default pre path for newly created users
|
|
|
+$v_ftp_pre_path_new_user = $v_ftp_user_prepath;
|
|
|
+if (isset($v_ftp_users_updated)) {
|
|
|
+ $v_ftp_users = $v_ftp_users_updated;
|
|
|
+ if (empty($v_ftp_users_updated)) {
|
|
|
+ $v_ftp_user = null;
|
|
|
+ $v_ftp_users[] = array(
|
|
|
+ 'is_new' => 1,
|
|
|
+ 'v_ftp_user' => '',
|
|
|
+ 'v_ftp_password' => '',
|
|
|
+ 'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
|
|
|
+ 'v_ftp_email' => '',
|
|
|
+ 'v_ftp_pre_path' => $v_ftp_user_prepath
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+$result = array(
|
|
|
+ 'username' => $v_username,
|
|
|
+ 'domain' => $v_domain,
|
|
|
+ 'ip' => $v_ip,
|
|
|
+ 'template' => $v_template,
|
|
|
+ 'aliases' => $v_aliases,
|
|
|
+ 'valiases' => $valiases,
|
|
|
+ 'tpl' => $v_tpl,
|
|
|
+ 'elog' => $$v_elog,
|
|
|
+ 'ssl' => $v_ssl,
|
|
|
+ 'cgi' => $v_cgi,
|
|
|
+ 'ssl_crt' => $v_ssl_crt,
|
|
|
+ 'ssl_key' => $v_ssl_key,
|
|
|
+ 'ssl_ca' => $v_ssl_ca,
|
|
|
+ 'ssl_subject' => $v_ssl_subject,
|
|
|
+ 'ssl_aliases' => $v_ssl_aliases,
|
|
|
+ 'ssl_not_before' => $v_ssl_not_before,
|
|
|
+ 'ssl_not_after' => $v_ssl_not_after,
|
|
|
+ 'ssl_signature' => $v_ssl_signature,
|
|
|
+ 'ssl_pub_key' => $v_ssl_pub_key,
|
|
|
+ 'ssl_issuer' => $v_ssl_issuer,
|
|
|
+ 'letsencrypt' => $v_letsencrypt,
|
|
|
+ 'ssl_home' => $v_ssl_home,
|
|
|
+ 'backend_template' => $v_backend_template,
|
|
|
+ 'proxy' => $v_proxy,
|
|
|
+ 'proxy_template' => $v_proxy_template,
|
|
|
+ 'proxy_ext' => $v_proxy_ext,
|
|
|
+ 'v_stats' => $v_stats,
|
|
|
+ 'stats_user' => $v_stats_user,
|
|
|
+ 'ftp_user' => $v_ftp_user,
|
|
|
+ 'ftp_path' => $v_ftp_path,
|
|
|
+ 'ftp_password' => $v_ftp_password,
|
|
|
+ 'ftp_user_prepath' => $v_ftp_user_prepath,
|
|
|
+ 'ftp_email' => $v_ftp_email,
|
|
|
+ 'suspended' => $v_suspended,
|
|
|
+ 'status' => $v_status,
|
|
|
+ 'time' => $v_time,
|
|
|
+ 'date' => $v_date,
|
|
|
+ 'ips' => $ips,
|
|
|
+ 'prefixI18N' => __('Prefix will be automaticaly added to username',$user."_"),
|
|
|
+ 'ftp_users' => $v_ftp_users,
|
|
|
+ 'templates' => $templates,
|
|
|
+ 'backend_templates' => $backend_templates,
|
|
|
+ 'proxy_templates' => $proxy_templates,
|
|
|
+ 'stats' => $stats,
|
|
|
+ 'proxy_system' => $_SESSION['PROXY_SYSTEM'],
|
|
|
+ 'web_backend' => $_SESSION['WEB_BACKEND'],
|
|
|
+ 'web_system' => $_SESSION['WEB_SYSTEM'],
|
|
|
+ 'error_msg' => $_SESSION['error_msg'],
|
|
|
+ 'ok_msg' => $_SESSION['ok_msg']
|
|
|
+);
|
|
|
+
|
|
|
+echo json_encode($result);
|
|
|
+
|
|
|
+// Flush session messages
|
|
|
+unset($_SESSION['error_msg']);
|
|
|
+unset($_SESSION['ok_msg']);
|