Multiftp support

This commit is contained in:
Serghey Rodin 2014-07-30 15:54:18 +03:00
commit f42face68d
5 changed files with 1094 additions and 670 deletions

View file

@ -4,39 +4,60 @@ error_reporting(NULL);
ob_start(); ob_start();
session_start(); session_start();
$TAB = 'WEB'; $TAB = 'WEB';
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
// Header // Check POST request
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html'); if (!empty($_POST['ok'])) {
// Panel // Check for empty fields
top_panel($user,$TAB);
$v_ftp_email = $panel[$user]['CONTACT'];
if (!empty($_POST['ok'])) {
// Check input
if (empty($_POST['v_domain'])) $errors[] = __('domain'); if (empty($_POST['v_domain'])) $errors[] = __('domain');
if (empty($_POST['v_ip'])) $errors[] = __('ip'); if (empty($_POST['v_ip'])) $errors[] = __('ip');
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = __('ssl certificate'); if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = __('ssl certificate');
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = __('ssl key'); if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = __('ssl key');
if ((!empty($_POST['v_aliases'])) && ($_POST['v_aliases'] != 'www.'.$_POST['v_domain'])) $v_adv = 'yes'; if (!empty($errors[0])) {
if ((!empty($_POST['v_ssl'])) || (!empty($_POST['v_elog']))) $v_adv = 'yes'; foreach ($errors as $i => $error) {
if ((!empty($_POST['v_ssl_crt'])) || (!empty($_POST['v_ssl_key']))) $v_adv = 'yes'; if ( $i == 0 ) {
if ((!empty($_POST['v_ssl_ca'])) || ($_POST['v_stats'] != 'none')) $v_adv = 'yes'; $error_msg = $error;
if (empty($_POST['v_proxy'])) $v_adv = 'yes'; } else {
if (!empty($_POST['v_ftp'])) $v_adv = 'yes'; $error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
}
$v_proxy_ext = 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf,'; // Check stats password length
if ((!empty($v_stats)) && (empty($_SESSION['error_msg']))) {
if (!empty($_POST['v_stats_user'])) {
$pw_len = strlen($_POST['v_stats_password']);
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
}
}
// Default proxy extention list
$v_proxy_ext = 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf, ';
$v_proxy_ext .= 'otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, '; $v_proxy_ext .= 'otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, ';
$v_proxy_ext .= 'odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, '; $v_proxy_ext .= 'odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, ';
$v_proxy_ext .= 'bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, '; $v_proxy_ext .= 'bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, ';
$v_proxy_ext .= 'mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf'; $v_proxy_ext .= 'mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf';
// Set advanced option checkmark
if (empty($_POST['v_proxy'])) $v_adv = 'yes';
if (!empty($_POST['v_ftp'])) $v_adv = 'yes';
if ($_POST['v_proxy_ext'] != $v_proxy_ext) $v_adv = 'yes'; if ($_POST['v_proxy_ext'] != $v_proxy_ext) $v_adv = 'yes';
// Protect input // Set domain name to lowercase and remove www prefix
$v_domain = preg_replace("/^www\./i", "", $_POST['v_domain']); $v_domain = preg_replace("/^www\./i", "", $_POST['v_domain']);
$v_domain = escapeshellarg($v_domain); $v_domain = escapeshellarg($v_domain);
$v_domain = strtolower($v_domain); $v_domain = strtolower($v_domain);
// Prepare domain values
$v_ip = escapeshellarg($_POST['v_ip']); $v_ip = escapeshellarg($_POST['v_ip']);
if ((!empty($_POST['v_aliases'])) && ($_POST['v_aliases'] != 'www.'.$_POST['v_domain'])) $v_adv = 'yes';
if ((!empty($_POST['v_ssl'])) || (!empty($_POST['v_elog']))) $v_adv = 'yes';
if ((!empty($_POST['v_ssl_crt'])) || (!empty($_POST['v_ssl_key']))) $v_adv = 'yes';
if ((!empty($_POST['v_ssl_ca'])) || ($_POST['v_stats'] != 'none')) $v_adv = 'yes';
if (!empty($v_domain)) $v_ftp_user_prepath .= $v_domain;
if (empty($_POST['v_dns'])) $v_dns = 'off'; if (empty($_POST['v_dns'])) $v_dns = 'off';
if (empty($_POST['v_mail'])) $v_mail = 'off'; if (empty($_POST['v_mail'])) $v_mail = 'off';
if (empty($_POST['v_proxy'])) $v_proxy = 'off'; if (empty($_POST['v_proxy'])) $v_proxy = 'off';
@ -60,60 +81,30 @@ $v_ftp_email = $panel[$user]['CONTACT'];
$v_ftp_password = $_POST['v_ftp_password']; $v_ftp_password = $_POST['v_ftp_password'];
$v_ftp_email = $_POST['v_ftp_email']; $v_ftp_email = $_POST['v_ftp_email'];
// Validate email
if ((!empty($_POST['v_ftp_email'])) && (!filter_var($_POST['v_ftp_email'], FILTER_VALIDATE_EMAIL))) {
$_SESSION['error_msg'] = __('Please enter valid email address.');
}
// Check ftp password length
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
if (!empty($_POST['v_ftp_user'])) {
$pw_len = strlen($_POST['v_ftp_password']);
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
}
}
// Check stats password length
if ((!empty($v_stats)) && (empty($_SESSION['error_msg']))) {
if (!empty($_POST['v_stats_user'])) {
$pw_len = strlen($_POST['v_stats_password']);
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
}
}
// Check for errors
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 web domain
if (empty($_SESSION['error_msg'])) { if (empty($_SESSION['error_msg'])) {
// Add WEB
exec (VESTA_CMD."v-add-web-domain ".$user." ".$v_domain." ".$v_ip." 'no'", $output, $return_var); exec (VESTA_CMD."v-add-web-domain ".$user." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
$domain_added = empty($_SESSION['error_msg']);
}
// Add DNS // Add DNS domain
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) { if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-dns-domain ".$user." ".$v_domain." ".$v_ip, $output, $return_var); exec (VESTA_CMD."v-add-dns-domain ".$user." ".$v_domain." ".$v_ip, $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
// Add Mail // Add mail domain
if (($_POST['v_mail'] == 'on') && (empty($_SESSION['error_msg']))) { if (($_POST['v_mail'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-mail-domain ".$user." ".$v_domain, $output, $return_var); exec (VESTA_CMD."v-add-mail-domain ".$user." ".$v_domain, $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
// Add Aliases // Add domain aliases
if ((!empty($_POST['v_aliases'])) && (empty($_SESSION['error_msg']))) { if ((!empty($_POST['v_aliases'])) && (empty($_SESSION['error_msg']))) {
$valiases = preg_replace("/\n/", " ", $_POST['v_aliases']); $valiases = preg_replace("/\n/", " ", $_POST['v_aliases']);
$valiases = preg_replace("/,/", " ", $valiases); $valiases = preg_replace("/,/", " ", $valiases);
@ -128,8 +119,8 @@ $v_ftp_email = $panel[$user]['CONTACT'];
if (empty($_SESSION['error_msg'])) { if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-add-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var); exec (VESTA_CMD."v-add-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
}
unset($output); unset($output);
}
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) { if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-add-dns-on-web-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var); exec (VESTA_CMD."v-add-dns-on-web-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
@ -138,16 +129,18 @@ $v_ftp_email = $panel[$user]['CONTACT'];
} }
} }
} }
// Delete www. alias if it wasn't found
if ((empty($www_alias)) && (empty($_SESSION['error_msg']))) { if ((empty($www_alias)) && (empty($_SESSION['error_msg']))) {
$alias = preg_replace("/^www./i", "", $_POST['v_domain']); $alias = preg_replace("/^www./i", "", $_POST['v_domain']);
$alias = 'www.'.$alias; $alias = 'www.'.$alias;
$alias = escapeshellarg($alias); $alias = escapeshellarg($alias);
exec (VESTA_CMD."v-delete-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var); exec (VESTA_CMD."v-delete-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output);
} }
// Add proxy support
// Add proxy
if (($_POST['v_proxy'] == 'on') && (empty($_SESSION['error_msg']))) { if (($_POST['v_proxy'] == 'on') && (empty($_SESSION['error_msg']))) {
$ext = str_replace(' ', '', $v_proxy_ext); $ext = str_replace(' ', '', $v_proxy_ext);
$ext = escapeshellarg($ext); $ext = escapeshellarg($ext);
@ -156,12 +149,13 @@ $v_ftp_email = $panel[$user]['CONTACT'];
unset($output); unset($output);
} }
// Add SSL // Add SSL certificates
if (!empty($_POST['v_ssl'])) { if ((!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
exec ('mktemp -d', $output, $return_var); exec ('mktemp -d', $output, $return_var);
$tmpdir = $output[0]; $tmpdir = $output[0];
unset($output);
// Certificate // Save certificate
if (!empty($_POST['v_ssl_crt'])) { if (!empty($_POST['v_ssl_crt'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w'); $fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt'])); fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
@ -169,7 +163,7 @@ $v_ftp_email = $panel[$user]['CONTACT'];
fclose($fp); fclose($fp);
} }
// Key // Save private key
if (!empty($_POST['v_ssl_key'])) { if (!empty($_POST['v_ssl_key'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w'); $fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key'])); fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
@ -177,7 +171,7 @@ $v_ftp_email = $panel[$user]['CONTACT'];
fclose($fp); fclose($fp);
} }
// CA // Save CA bundle
if (!empty($_POST['v_ssl_ca'])) { if (!empty($_POST['v_ssl_ca'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w'); $fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca'])); fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca']));
@ -191,67 +185,129 @@ $v_ftp_email = $panel[$user]['CONTACT'];
unset($output); unset($output);
} }
// Add WebStats // Add web stats
if ((!empty($_POST['v_stats'])) && ($_POST['v_stats'] != 'none' ) && (empty($_SESSION['error_msg']))) { if ((!empty($_POST['v_stats'])) && ($_POST['v_stats'] != 'none' ) && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']); $v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v-add-web-domain-stats ".$user." ".$v_domain." ".$v_stats, $output, $return_var); exec (VESTA_CMD."v-add-web-domain-stats ".$user." ".$v_domain." ".$v_stats, $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
}
// Add web stats password
if ((!empty($_POST['v_stats_user'])) && (empty($_SESSION['error_msg']))) { if ((!empty($_POST['v_stats_user'])) && (empty($_SESSION['error_msg']))) {
$v_stats_user = escapeshellarg($_POST['v_stats_user']); $v_stats_user = escapeshellarg($_POST['v_stats_user']);
$v_stats_password = escapeshellarg($_POST['v_stats_password']); $v_stats_password = escapeshellarg($_POST['v_stats_password']);
exec (VESTA_CMD."v-add-web-domain-stats-user ".$user." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var); exec (VESTA_CMD."v-add-web-domain-stats-user ".$user." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($v_stats_user);
unset($v_stats_password);
unset($output);
}
}
// Add FTP
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
$v_ftp_user = escapeshellarg($_POST['v_ftp_user']);
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
exec (VESTA_CMD."v-add-web-domain-ftp ".$user." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
check_return_code($return_var,$output);
if (empty($_SESSION['error_msg'])) {
if (!empty($v_ftp_email)) {
$to = $_POST['v_ftp_email'];
$subject = __("FTP login credentials");
$hostname = exec('hostname');
$from = __('MAIL_FROM',$hostname);
$mailtext .= __('FTP_ACCOUNT_READY',$_POST['v_domain'],$user,$_POST['v_ftp_user'],$_POST['v_ftp_password']);
send_email($to, $subject, $mailtext, $from);
}
}
unset($v_ftp);
unset($v_ftp_user);
unset($v_ftp_password);
unset($output); unset($output);
} }
// Restart DNS server
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) { if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-dns", $output, $return_var); exec (VESTA_CMD."v-restart-dns", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
// Restart web server
if (empty($_SESSION['error_msg'])) { if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-restart-web", $output, $return_var); exec (VESTA_CMD."v-restart-web", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
if (empty($_SESSION['error_msg'])) { // Restart proxy server
if (($_POST['v_proxy'] == 'on') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-proxy", $output, $return_var); exec (VESTA_CMD."v-restart-proxy", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
if (empty($_SESSION['error_msg'])) { // Add FTP
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
$v_ftp_users_updated = array();
foreach ($_POST['v_ftp_user'] as $i => $v_ftp_user_data) {
if ($v_ftp_user_data['is_new'] == 1) {
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($v_ftp_user_data['v_ftp_password'])) $errors[] = 'ftp user password';
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);
}
// Validate email
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.');
}
// Check ftp password length
if ((!empty($v_ftp_user_data['v_ftp']))) {
if (!empty($v_ftp_user_data['v_ftp_user'])) {
$pw_len = strlen($v_ftp_user_data['v_ftp_password']);
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
}
}
$v_ftp_user_data['v_ftp_user'] = preg_replace("/^".$user."_/i", "", $v_ftp_user_data['v_ftp_user']);
$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_user_data['v_ftp_user']);
$v_ftp_password = escapeshellarg($v_ftp_user_data['v_ftp_password']);
if ($domain_added) {
exec (VESTA_CMD."v-add-web-domain-ftp ".$user." ".$v_domain." ".$v_ftp_username." ".$v_ftp_password . " " . $v_ftp_user_data['v_ftp_path'], $output, $return_var);
check_return_code($return_var,$output);
unset($output); unset($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");
$from = __('MAIL_FROM',$_POST['v_domain']);
$mailtext = __('FTP_ACCOUNT_READY',$_POST['v_domain'],$user,$v_ftp_user_data['v_ftp_user'],$v_ftp_user_data['v_ftp_password']);
send_email($to, $subject, $mailtext, $from);
unset($v_ftp_email);
}
} else {
$return_var = -1;
}
if ($return_var == 0) {
$v_ftp_password = "••••••••";
$v_ftp_user_data['is_new'] = 0;
} else {
$v_ftp_user_data['is_new'] = 1;
}
$v_ftp_username = preg_replace("/^".$user."_/", "", $v_ftp_user_data['v_ftp_user']);
$v_ftp_users_updated[] = array(
'is_new' => $v_ftp_user_data['is_new'],
'v_ftp_user' => $return_var == 0 ? $v_ftp_username_full : $v_ftp_username,
'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;
}
}
if (!empty($_SESSION['error_msg']) && $domain_added) {
$_SESSION['ok_msg'] = __('WEB_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
$_SESSION['flash_error_msg'] = $_SESSION['error_msg'];
$url = '/edit/web/?domain='.strtolower(preg_replace("/^www\./i", "", $_POST['v_domain']));
header('Location: ' . $url);
exit;
}
}
// Flush field values on success
if (empty($_SESSION['error_msg'])) {
$_SESSION['ok_msg'] = __('WEB_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]); $_SESSION['ok_msg'] = __('WEB_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
unset($v_domain); unset($v_domain);
unset($v_aliases); unset($v_aliases);
@ -259,22 +315,39 @@ $v_ftp_email = $panel[$user]['CONTACT'];
unset($v_ssl_crt); unset($v_ssl_crt);
unset($v_ssl_key); unset($v_ssl_key);
unset($v_ssl_ca); unset($v_ssl_ca);
unset($v_stats_user);
unset($v_stats_password);
unset($v_ftp);
} }
} }
}
exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
$ips = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var); // Header
$stats = json_decode(implode('', $output), true); include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
unset($output);
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_web.html'); // Panel
unset($_SESSION['error_msg']); top_panel($user,$TAB);
unset($_SESSION['ok_msg']);
//} // Define user variables
$v_ftp_user_prepath = $panel[$user]['HOME'] . "/web";
$v_ftp_email = $panel[$user]['CONTACT'];
// 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 stat engines
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
$stats = json_decode(implode('', $output), true);
unset($output);
// Display body
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_web.html');
// Flush session messages
unset($_SESSION['error_msg']);
unset($_SESSION['ok_msg']);
// Footer // Footer
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html'); include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');

View file

@ -4,17 +4,11 @@ error_reporting(NULL);
ob_start(); ob_start();
session_start(); session_start();
unset($_SESSION['error_msg']); unset($_SESSION['error_msg']);
$TAB = 'WEB'; $TAB = 'WEB';
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
// Header // Check domain argument
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
// Panel
top_panel($user,$TAB);
// Check user argument?
if (empty($_GET['domain'])) { if (empty($_GET['domain'])) {
header("Location: /list/web/"); header("Location: /list/web/");
exit; exit;
@ -25,73 +19,77 @@ if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
$user=escapeshellarg($_GET['user']); $user=escapeshellarg($_GET['user']);
} }
// Check domain // List domain
$v_domain = escapeshellarg($_GET['domain']); $v_domain = escapeshellarg($_GET['domain']);
exec (VESTA_CMD."v-list-web-domain ".$user." ".$v_domain." json", $output, $return_var); exec (VESTA_CMD."v-list-web-domain ".$user." ".$v_domain." json", $output, $return_var);
check_return_code($return_var,$output); $data = json_decode(implode('', $output), true);
if (empty($_SESSION['error_msg'])) { unset($output);
$data = json_decode(implode('', $output), true);
unset($output); // Parse domain
$v_username = $user; $v_username = $user;
$v_domain = $_GET['domain']; $v_domain = $_GET['domain'];
$v_ip = $data[$v_domain]['IP']; $v_ip = $data[$v_domain]['IP'];
$v_template = $data[$v_domain]['TPL']; $v_template = $data[$v_domain]['TPL'];
$v_aliases = str_replace(',', "\n", $data[$v_domain]['ALIAS']); $v_aliases = str_replace(',', "\n", $data[$v_domain]['ALIAS']);
$valiases = explode(",", $data[$v_domain]['ALIAS']); $valiases = explode(",", $data[$v_domain]['ALIAS']);
$v_tpl = $data[$v_domain]['IP']; $v_tpl = $data[$v_domain]['IP'];
$v_cgi = $data[$v_domain]['CGI']; $v_cgi = $data[$v_domain]['CGI'];
$v_elog = $data[$v_domain]['ELOG']; $v_elog = $data[$v_domain]['ELOG'];
$v_ssl = $data[$v_domain]['SSL']; $v_ssl = $data[$v_domain]['SSL'];
if ( $v_ssl == 'yes' ) { if ( $v_ssl == 'yes' ) {
exec (VESTA_CMD."v-list-web-domain-ssl ".$user." '".$v_domain."' json", $output, $return_var); exec (VESTA_CMD."v-list-web-domain-ssl ".$user." '".$v_domain."' json", $output, $return_var);
$ssl_str = json_decode(implode('', $output), true); $ssl_str = json_decode(implode('', $output), true);
unset($output); unset($output);
$v_ssl_crt = $ssl_str[$v_domain]['CRT']; $v_ssl_crt = $ssl_str[$v_domain]['CRT'];
$v_ssl_key = $ssl_str[$v_domain]['KEY']; $v_ssl_key = $ssl_str[$v_domain]['KEY'];
$v_ssl_ca = $ssl_str[$v_domain]['CA']; $v_ssl_ca = $ssl_str[$v_domain]['CA'];
}
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
$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'];
if (!empty($v_ftp_user)) $v_ftp_password = "••••••••";
$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'];
exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
$ips = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
$templates = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
$proxy_templates = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
$stats = json_decode(implode('', $output), true);
unset($output);
} }
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
$v_proxy = $data[$v_domain]['PROXY'];
// Action $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'];
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_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 proxy templates
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'])) { if (!empty($_POST['save'])) {
$v_domain = escapeshellarg($_POST['v_domain']); $v_domain = escapeshellarg($_POST['v_domain']);
// IP // Change web domain IP
if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) { if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) {
$v_ip = escapeshellarg($_POST['v_ip']); $v_ip = escapeshellarg($_POST['v_ip']);
exec (VESTA_CMD."v-change-web-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var); exec (VESTA_CMD."v-change-web-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
@ -99,27 +97,36 @@ if (!empty($_POST['save'])) {
$restart_web = 'yes'; $restart_web = 'yes';
$restart_proxy = 'yes'; $restart_proxy = 'yes';
unset($output); unset($output);
}
// Chane dns domain IP
if (empty($_SESSION['error_msg'])) {
exec (VESTA_CMD."v-list-dns-domain ".$v_username." ".$v_domain." json", $output, $return_var); exec (VESTA_CMD."v-list-dns-domain ".$v_username." ".$v_domain." json", $output, $return_var);
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
unset($output); unset($output);
if ($return_var == 0 ) {
exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var); exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
$restart_dns = 'yes';
}
unset($output); unset($output);
foreach($valiases as $v_alias ){
exec (VESTA_CMD."v-list-dns-domain ".$v_username." '".$v_alias."' json", $output, $return_var);
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." '".$v_alias."' ".$v_ip, $output, $return_var);
check_return_code($return_var,$output);
$restart_dns = 'yes'; $restart_dns = 'yes';
} }
unset($output);
}
} }
// Template // Change dns ip for each alias
if (( $_SESSION['user'] == 'admin') && ($v_template != $_POST['v_template']) && (empty($_SESSION['error_msg']))) { if (empty($_SESSION['error_msg'])) {
foreach($valiases as $v_alias ){
exec (VESTA_CMD."v-list-dns-domain ".$v_username." '".$v_alias."' json", $output, $return_var);
unset($output);
if ($return_var == 0 ) {
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']); $v_template = escapeshellarg($_POST['v_template']);
exec (VESTA_CMD."v-change-web-domain-tpl ".$v_username." ".$v_domain." ".$v_template." 'no'", $output, $return_var); exec (VESTA_CMD."v-change-web-domain-tpl ".$v_username." ".$v_domain." ".$v_template." 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
@ -127,7 +134,7 @@ if (!empty($_POST['save'])) {
$restart_web = 'yes'; $restart_web = 'yes';
} }
// Aliases // Change aliases
if (empty($_SESSION['error_msg'])) { if (empty($_SESSION['error_msg'])) {
$waliases = preg_replace("/\n/", " ", $_POST['v_aliases']); $waliases = preg_replace("/\n/", " ", $_POST['v_aliases']);
$waliases = preg_replace("/,/", " ", $waliases); $waliases = preg_replace("/,/", " ", $waliases);
@ -151,9 +158,9 @@ if (!empty($_POST['save'])) {
if ($return_var == 0) { if ($return_var == 0) {
exec (VESTA_CMD."v-delete-dns-on-web-alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var); exec (VESTA_CMD."v-delete-dns-on-web-alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output);
$restart_dns = 'yes'; $restart_dns = 'yes';
} }
unset($output);
} }
} }
} }
@ -173,15 +180,15 @@ if (!empty($_POST['save'])) {
if ($return_var == 0) { if ($return_var == 0) {
exec (VESTA_CMD."v-add-dns-on-web-alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var); exec (VESTA_CMD."v-add-dns-on-web-alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output);
$restart_dns = 'yes'; $restart_dns = 'yes';
} }
} }
unset($output);
} }
} }
} }
// Proxy // Delete proxy support
if ((!empty($v_proxy)) && (empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) { if ((!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); exec (VESTA_CMD."v-delete-web-domain-proxy ".$v_username." ".$v_domain." 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
@ -189,6 +196,8 @@ if (!empty($_POST['save'])) {
unset($v_proxy); unset($v_proxy);
$restart_proxy = 'yes'; $restart_proxy = 'yes';
} }
// Change proxy template / Update extention list
if ((!empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) { if ((!empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
$ext = preg_replace("/\n/", " ", $_POST['v_proxy_ext']); $ext = preg_replace("/\n/", " ", $_POST['v_proxy_ext']);
$ext = preg_replace("/,/", " ", $ext); $ext = preg_replace("/,/", " ", $ext);
@ -205,6 +214,8 @@ if (!empty($_POST['save'])) {
$restart_proxy = 'yes'; $restart_proxy = 'yes';
} }
} }
// Add proxy support
if ((empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) { if ((empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
$v_proxy_template = $_POST['v_proxy_template']; $v_proxy_template = $_POST['v_proxy_template'];
if (!empty($_POST['v_proxy_ext'])) { if (!empty($_POST['v_proxy_ext'])) {
@ -221,7 +232,7 @@ if (!empty($_POST['save'])) {
$restart_proxy = 'yes'; $restart_proxy = 'yes';
} }
// SSL // Delete SSL certificate
if (( $v_ssl == 'yes' ) && (empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) { 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); exec (VESTA_CMD."v-delete-web-domain-ssl ".$v_username." ".$v_domain." 'no'", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
@ -230,6 +241,8 @@ if (!empty($_POST['save'])) {
$restart_web = 'yes'; $restart_web = 'yes';
$restart_proxy = 'yes'; $restart_proxy = 'yes';
} }
// Change SSL certificate
if (($v_ssl == 'yes') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) { if (($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']))) { 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); exec ('mktemp -d', $mktemp_output, $return_var);
@ -269,15 +282,8 @@ if (!empty($_POST['save'])) {
$v_ssl_ca = $_POST['v_ssl_ca']; $v_ssl_ca = $_POST['v_ssl_ca'];
} }
} }
if (( $v_ssl == 'yes') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if ( $v_ssl_home != $_POST['v_ssl_home'] ) { // Add SSL certificate
$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'];
unset($output);
}
}
if (( $v_ssl == 'no') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) { if (( $v_ssl == 'no') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = 'ssl certificate'; if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = 'ssl certificate';
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = 'ssl key'; if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = 'ssl key';
@ -329,19 +335,34 @@ if (!empty($_POST['save'])) {
} }
} }
// Web Stats // 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'];
unset($output);
}
}
// Delete web stats
if ((!empty($v_stats)) && ($_POST['v_stats'] == 'none') && (empty($_SESSION['error_msg']))) { 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); exec (VESTA_CMD."v-delete-web-domain-stats ".$v_username." ".$v_domain, $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
$v_stats = ''; $v_stats = '';
} }
// Change web stats engine
if ((!empty($v_stats)) && ($_POST['v_stats'] != $v_stats) && (empty($_SESSION['error_msg']))) { if ((!empty($v_stats)) && ($_POST['v_stats'] != $v_stats) && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']); $v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v-change-web-domain-stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var); exec (VESTA_CMD."v-change-web-domain-stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
// Add web stats
if ((empty($v_stats)) && ($_POST['v_stats'] != 'none') && (empty($_SESSION['error_msg']))) { if ((empty($v_stats)) && ($_POST['v_stats'] != 'none') && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']); $v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v-add-web-domain-stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var); exec (VESTA_CMD."v-add-web-domain-stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var);
@ -349,7 +370,7 @@ if (!empty($_POST['save'])) {
unset($output); unset($output);
} }
// Web Stats Auth // Delete web stats authorization
if ((!empty($v_stats_user)) && (empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) { 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); exec (VESTA_CMD."v-delete-web-domain-stats-user ".$v_username." ".$v_domain, $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
@ -357,6 +378,8 @@ if (!empty($_POST['save'])) {
$v_stats_user = ''; $v_stats_user = '';
$v_stats_password = ''; $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($v_stats_user)) && (!empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
if (empty($_POST['v_stats_user'])) $errors[] = __('stats username'); if (empty($_POST['v_stats_user'])) $errors[] = __('stats username');
if (empty($_POST['v_stats_password'])) $errors[] = __('stats password'); if (empty($_POST['v_stats_password'])) $errors[] = __('stats password');
@ -378,6 +401,8 @@ if (!empty($_POST['save'])) {
$v_stats_password = "••••••••"; $v_stats_password = "••••••••";
} }
} }
// Add web stats authorization
if ((!empty($v_stats_user)) && (!empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) { 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($_POST['v_stats_user'])) $errors[] = __('stats user');
if (empty($_POST['v_stats_password'])) $errors[] = __('stats password'); if (empty($_POST['v_stats_password'])) $errors[] = __('stats password');
@ -401,20 +426,15 @@ if (!empty($_POST['save'])) {
} }
} }
// Delete FTP Account // Change ftp accounts
if ((!empty($v_ftp_user)) && (empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) { if (!empty($_POST['v_ftp_user'])) {
exec (VESTA_CMD."v-delete-web-domain-ftp ".$v_username." ".$v_domain, $output, $return_var); $v_ftp_users_updated = array();
check_return_code($return_var,$output); foreach ($_POST['v_ftp_user'] as $i => $v_ftp_user_data) {
unset($output); $v_ftp_user_data['v_ftp_user'] = preg_replace("/^".$user."_/i", "", $v_ftp_user_data['v_ftp_user']);
$v_ftp= ''; if ($v_ftp_user_data['is_new'] == 1) {
$v_ftp_user = ''; 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.');
$v_ftp_password = ''; if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = 'ftp user';
} if (empty($v_ftp_user_data['v_ftp_password'])) $errors[] = 'ftp user password';
// Change FTP Account
if ((!empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
if (empty($_POST['v_ftp_user'])) $errors[] = __('ftp user');
if (empty($_POST['v_ftp_password'])) $errors[] = __('ftp user password');
if (!empty($errors[0])) { if (!empty($errors[0])) {
foreach ($errors as $i => $error) { foreach ($errors as $i => $error) {
if ( $i == 0 ) { if ( $i == 0 ) {
@ -425,88 +445,184 @@ if (!empty($_POST['save'])) {
} }
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg); $_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
} }
if (($v_ftp_user != $_POST['v_ftp_user']) || ($_POST['v_ftp_password'] != "••••••••" ) && (empty($_SESSION['error_msg']))) {
$v_ftp_user = preg_replace("/^".$user."_/", "", $_POST['v_ftp_user']);
$v_ftp_user = escapeshellarg($v_ftp_user);
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
check_return_code($return_var,$output);
unset($output);
$v_ftp= '';
$v_ftp_user = $user."_".preg_replace("/^".$user."_/", "", $_POST['v_ftp_user']);
$v_ftp_password = "••••••••";
}
}
// Add FTP Account $v_ftp_username = $v_ftp_user_data['v_ftp_user'];
if ((empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) { $v_ftp_username_full = $user . '_' . $v_ftp_user_data['v_ftp_user'];
if ((!empty($_POST['v_ftp_email'])) && (!filter_var($_POST['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = __('Please enter valid email address.'); $v_ftp_user = escapeshellarg($v_ftp_username);
if (empty($_POST['v_ftp_user'])) $errors[] = 'ftp user'; $v_ftp_password = escapeshellarg($v_ftp_user_data['v_ftp_password']);
if (empty($_POST['v_ftp_password'])) $errors[] = 'ftp user password';
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 (empty($_SESSION['error_msg'])) { if (empty($_SESSION['error_msg'])) {
$v_ftp_user = escapeshellarg($_POST['v_ftp_user']); exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_password . " " . $v_ftp_user_data['v_ftp_path'], $output, $return_var);
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
if ((!empty($_POST['v_ftp_email'])) && (empty($_SESSION['error_msg']))) { if ((!empty($v_ftp_user_data['v_ftp_email'])) && (empty($_SESSION['error_msg']))) {
$to = $_POST['v_ftp_email']; $to = $v_ftp_user_data['v_ftp_email'];
$subject = __("FTP login credentials"); $subject = __("FTP login credentials");
$hostname = exec('hostname'); $hostname = exec('hostname');
$from = __('MAIL_FROM',$hostname); $from = __('MAIL_FROM',$hostname);
$mailtext .= __('FTP_ACCOUNT_READY',$_GET['domain'],$user,$_POST['v_ftp_user'],$_POST['v_ftp_password']); $mailtext = __('FTP_ACCOUNT_READY',$_GET['domain'],$user,$v_ftp_username,$v_ftp_user_data['v_ftp_password']);
send_email($to, $subject, $mailtext, $from); send_email($to, $subject, $mailtext, $from);
unset($v_ftp_email); unset($v_ftp_email);
} }
unset($output); unset($output);
$v_ftp_user = $user."_".$_POST['v_ftp_user']; }
if ($return_var == 0) {
$v_ftp_password = "••••••••"; $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;
}
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;
}
// Change FTP Account
if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = __('ftp user');
if (empty($v_ftp_user_data['v_ftp_password'])) $errors[] = __('ftp user password');
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);
}
$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_user_data['v_ftp_password'] = escapeshellarg(trim($v_ftp_user_data['v_ftp_password']));
exec (VESTA_CMD."v-change-web-domain-ftp-path ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_user_data['v_ftp_path'], $output, $return_var);
if ($v_ftp_user_data['v_ftp_password'] != "••••••••" && !empty($v_ftp_user_data['v_ftp_password'])) {
exec (VESTA_CMD."v-change-web-domain-ftp-password ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_user_data['v_ftp_password'], $output, $return_var);
}
check_return_code($return_var, $output);
unset($output);
$v_ftp_password = "••••••••";
$v_ftp_users_updated[] = array(
'is_new' => 0,
'v_ftp_user' => $v_ftp_username,
'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
);
} }
} }
// Restart web // Restart web server
if (!empty($restart_web) && (empty($_SESSION['error_msg']))) { if (!empty($restart_web) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-web", $output, $return_var); exec (VESTA_CMD."v-restart-web", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
// Restart proxy // Restart proxy server
if (!empty($restart_proxy) && (empty($_SESSION['error_msg']))) { if (!empty($restart_proxy) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-proxy", $output, $return_var); exec (VESTA_CMD."v-restart-proxy", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
// Restart dns // Restart dns server
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) { if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v-restart-dns", $output, $return_var); exec (VESTA_CMD."v-restart-dns", $output, $return_var);
check_return_code($return_var,$output); check_return_code($return_var,$output);
unset($output); unset($output);
} }
// Set success message
if (empty($_SESSION['error_msg'])) { if (empty($_SESSION['error_msg'])) {
$_SESSION['ok_msg'] = __('Changes has been saved.'); $_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
);
}
}
// Header
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
// Panel
top_panel($user,$TAB);
// Display body
if ($_SESSION['user'] == 'admin') { if ($_SESSION['user'] == 'admin') {
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_web.html'); include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_web.html');
} else { } else {
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_web.html'); include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_web.html');
} }
// Flush session messages
unset($_SESSION['error_msg']); unset($_SESSION['error_msg']);
unset($_SESSION['ok_msg']); unset($_SESSION['ok_msg']);
// Footer // Footer
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html'); include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');

View file

@ -42,7 +42,7 @@
document.v_add_web.v_stats_password.value = webrandom; document.v_add_web.v_stats_password.value = webrandom;
} }
function FTPrandom() { function FTPrandom(elm) {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10; var string_length = 10;
var ftprandomstring = ''; var ftprandomstring = '';
@ -50,7 +50,7 @@
var rnum = Math.floor(Math.random() * chars.length); var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1); ftprandomstring += chars.substring(rnum,rnum+1);
} }
document.v_add_web.v_ftp_password.value = ftprandomstring; $(elm).parents('.ftptable').find('.v-ftp-user-psw').val(ftprandomstring);
} }
function elementHideShow(elementToHideOrShow){ function elementHideShow(elementToHideOrShow){
@ -75,7 +75,7 @@
<td class="data-dotted"> <td class="data-dotted">
<table class="data-col2"> <table class="data-col2">
<tr> <tr>
<td class="vst-text" style="padding: 24px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Domain');?> <?php print __('Domain');?>
</td> </td>
</tr> </tr>
@ -85,7 +85,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('IP address');?> <?php print __('IP address');?>
</td> </td>
</tr> </tr>
@ -107,34 +107,24 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('DNS Support');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_dns" <?php if (empty($v_dns)) echo "checked=yes"; ?>> <?php print __('DNS Support');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="vst-text input-label">
<input type="checkbox" size="20" class="vst-checkbox" name="v_dns" <?php if (empty($v_dns)) echo "checked=yes"; ?>> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_mail" <?php if (empty($v_mail)) echo "checked=yes"; ?>> <?php print __('Mail Support');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="step-top vst-text" style="/*padding: 32px 0 20px 0;*/">
<?php print __('Mail Support');?>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_mail" <?php if (empty($v_mail)) echo "checked=yes"; ?>>
</td>
</tr>
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<a href="javascript:elementHideShow('advtable');" class="vst-advanced"><?php print __('Advanced options');?></a> <a href="javascript:elementHideShow('advtable');" class="vst-advanced"><?php print __('Advanced options');?></a>
</td> </td>
</tr> </tr>
</table> </table>
<table class="data-col2" width="600px" style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable"> <table class="data-col2" width="600px" style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Aliases');?> <?php print __('Aliases');?>
</td> </td>
</tr> </tr>
@ -144,25 +134,20 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top" >
<?php print __('Proxy Support');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if ($v_proxy !== 'off') echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');"> <?php print __('Proxy Support');?></label>
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if ($v_proxy !== 'off') echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');">
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<table style="display:<?php if ($v_proxy == 'off') { echo 'none';} else {echo 'block';}?>;" id="proxytable" > <table style="display:<?php if ($v_proxy == 'off') { echo 'none';} else {echo 'block';}?>;" id="proxytable" >
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label step-left">
<?php print __('Proxy Extentions');?> <?php print __('Proxy Extentions');?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<textarea size="20" class="vst-textinput" name="v_proxy_ext"><?php if (!empty($v_proxy_ext)) { echo $v_proxy_ext;} else { echo 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf, otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf'; } ?></textarea> <textarea size="20" class="vst-textinput" name="v_proxy_ext"><?php if (!empty($v_proxy_ext)) { echo $v_proxy_ext;} else { echo 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf, otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf'; } ?></textarea>
</td> </td>
</tr> </tr>
@ -170,26 +155,21 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="step-top vst-text">
<?php print __('SSL Support');?> / <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if($v_ssl == 'yes' || $v_ssl == 'on') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');"> <?php print __('SSL Support');?></label> /
<a class="generate" target="_blank" href="/generate/ssl/"><?php print __('Generate CSR') ?></a> <a class="generate" target="_blank" href="/generate/ssl/"><?php print __('Generate CSR') ?></a>
</td> </td>
</tr> </tr>
<tr>
<td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');">
</td>
</tr>
<tr> <tr>
<td> <td>
<table style="display:<?php if (empty($v_ssl)) { echo 'none';} else {echo 'block';}?>;" id="ssltable"> <table style="display:<?php if (empty($v_ssl)) { echo 'none';} else {echo 'block';}?>;" id="ssltable">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label step-left">
<?php print __('SSL Home Directory');?> <?php print __('SSL Home Directory');?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<select class="vst-list" name="v_ssl_home"> <select class="vst-list" name="v_ssl_home">
<option value='same' <?php if ($v_ssl_home == 'same') echo "selected";?>> <option value='same' <?php if ($v_ssl_home == 'same') echo "selected";?>>
public_html public_html
@ -201,32 +181,32 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label step-left">
<?php print __('SSL Certificate');?> <?php print __('SSL Certificate');?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<textarea size="20" class="vst-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea> <textarea size="20" class="vst-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label step-left">
<?php print __('SSL Key');?> <?php print __('SSL Key');?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<textarea size="20" class="vst-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key; ?></textarea> <textarea size="20" class="vst-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key; ?></textarea>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label step-left">
<?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span> <?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<textarea size="20" class="vst-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea> <textarea size="20" class="vst-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea>
</td> </td>
</tr> </tr>
@ -234,7 +214,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Web Statistics');?> <?php print __('Web Statistics');?>
</td> </td>
</tr> </tr>
@ -256,20 +236,15 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Statistics Authorization');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"> <?php print __('Statistics Authorization');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user"> <table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Username');?> <?php print __('Username');?>
</td> </td>
</tr> </tr>
@ -279,73 +254,104 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a> <?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="text" size="20" class="vst-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password"> <input type="text" size="20" class="vst-input password" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Additional FTP Account');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp)) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');"> <?php foreach ($v_ftp_users as $i => $ftp_user): ?>
<?php
$v_ftp_user = $ftp_user['v_ftp_user'];
$v_ftp_password = $ftp_user['v_ftp_password'];
$v_ftp_path = $ftp_user['v_ftp_path'];
$v_ftp_email = $ftp_user['v_ftp_email'];
$v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
?>
<table <?php echo (!empty($v_ftp)) ? "style='display: block'" : "style='display:none;'" ?> class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?php print $i ?>][is_new]" value="<?php print $ftp_user['is_new'] ?>" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="vst-text step-left input-label">
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp">
<tr>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Username');?><br> <?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span> <span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" size="20" class="vst-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>> <input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?> name="v_ftp_user[<?php print $i ?>][v_ftp_user]" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
<small class="hint"></small> <small class="hint"></small>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:FTPrandom();" class="generate" ><?php print __('generate');?></a> <?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" class="vst-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>> <input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[<?php print $i ?>][v_ftp_password]" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="<?php print !empty($v_ftp_pre_path) ? $v_ftp_pre_path : '/'; ?>">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[<?php print $i ?>][v_ftp_path]" <?php if (!empty($v_ftp_path)) echo "value=".$v_ftp_path; ?>>
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?> <?php print __('Send FTP credentials to email');?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" class="vst-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>> <input type="text" class="vst-input" name="v_ftp_user[<?php print $i ?>][v_ftp_email]" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td> </td>
</tr> </tr>
</table> </table>
<?php endforeach; ?>
</td>
</tr>
<tr>
<td class="vst-text step-top v-add-new-user step-bottom" style="display: none;">
<a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print __('Add one more FTP Account');?></a>
</td> </td>
</tr> </tr>
</table> </table>
<table class="data-col2"> <table class="data-col2">
<tr> <tr>
<td style="padding: 33px 0 0 0;" width="116px"> <td class="step-top" width="116px">
<input type="submit" name="ok" value="<?php print __('Add');?>" class="button"> <input type="submit" name="ok" value="<?php print __('Add');?>" class="button">
</td> </td>
<td style="padding: 33px 0 0 0;"> <td class="step-top">
<input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>"> <input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>">
</td> </td>
</tr> </tr>
@ -354,7 +360,71 @@
</tr> </tr>
</table> </table>
</form> </form>
<div id="templates" class="hidden">
<table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" value="">
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[%INDEX%][v_ftp_password]" value="">
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" value="">
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path_new_user ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[%INDEX%][v_ftp_email]" value="">
</td>
</tr>
</table>
</div>
<script type="text/javascript"> <script type="text/javascript">
GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_'; GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_';
GLOBAL.FTP_USER_PREPATH = '<?php echo $v_ftp_user_prepath; ?>';
$('#vstobjects').bind('submit', function(evt) {
$('input[disabled]').each(function(i, elm) {
$(elm).removeAttr('disabled');
});
});
</script> </script>
<script type="text/javascript" src="/js/pages/add.web.js"></script> <script type="text/javascript" src="/js/pages/add.web.js"></script>

View file

@ -10,12 +10,15 @@
<tr> <tr>
<td style="padding: 20px 10px;" ><a class="name"><b><?php print __('Editing Domain');?></b></a> <td style="padding: 20px 10px;" ><a class="name"><b><?php print __('Editing Domain');?></b></a>
<?php <?php
if (!empty($_SESSION['error_msg'])) {
echo "<span class=\"vst-error\"> → ".$_SESSION['error_msg']."</span>";
} else {
if (!empty($_SESSION['ok_msg'])) { if (!empty($_SESSION['ok_msg'])) {
echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>"; echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>";
} }
if (!empty($_SESSION['error_msg'])) {
echo "<span class=\"vst-error\"> → ".$_SESSION['error_msg']."</span>";
}
if (!empty($_SESSION['flash_error_msg'])) {
echo " / <span class=\"vst-error\"> FTP USER ".$_SESSION['flash_error_msg']."</span>";
unset($_SESSION['flash_error_msg']);
} }
?> ?>
</td> </td>
@ -36,7 +39,7 @@
document.v_edit_web.v_stats_password.value = webrandom; document.v_edit_web.v_stats_password.value = webrandom;
} }
function FTPrandom() { function FTPrandom(elm) {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10; var string_length = 10;
var ftprandomstring = ''; var ftprandomstring = '';
@ -44,7 +47,8 @@
var rnum = Math.floor(Math.random() * chars.length); var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1); ftprandomstring += chars.substring(rnum,rnum+1);
} }
document.v_edit_web.v_ftp_password.value = ftprandomstring;
$(elm).parents('.ftptable').find('.v-ftp-user-psw').val(ftprandomstring);
} }
function elementHideShow(elementToHideOrShow){ function elementHideShow(elementToHideOrShow){
@ -72,7 +76,7 @@
<td class="data-dotted"> <td class="data-dotted">
<table class="data-col2"> <table class="data-col2">
<tr> <tr>
<td class="vst-text" style="padding: 24px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Domain');?> <?php print __('Domain');?>
</td> </td>
</tr> </tr>
@ -82,7 +86,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('IP Address');?> <?php print __('IP Address');?>
</td> </td>
</tr> </tr>
@ -105,7 +109,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Aliases');?> <?php print __('Aliases');?>
</td> </td>
</tr> </tr>
@ -115,7 +119,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Web Template');?> <?php print __('Web Template');?>
</td> </td>
</tr> </tr>
@ -136,20 +140,15 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Proxy Support');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');"> <?php print __('Proxy Support');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable"> <table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Proxy Template');?> <?php print __('Proxy Template');?>
</td> </td>
</tr> </tr>
@ -173,7 +172,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Proxy Extensions');?> <?php print __('Proxy Extensions');?>
</td> </td>
</tr> </tr>
@ -186,21 +185,16 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('SSL Support');?> / <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');"> <?php print __('SSL Support');?></label> /
<a class="generate" target="_blank" href="/generate/ssl/?domain=<?php echo $v_domain ?>"><?php print __('Generate CSR') ?></a> <a class="generate" target="_blank" href="/generate/ssl/?domain=<?php echo $v_domain ?>"><?php print __('Generate CSR') ?></a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable"> <table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('SSL Home Directory');?> <?php print __('SSL Home Directory');?>
</td> </td>
</tr> </tr>
@ -218,7 +212,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('SSL Certificate');?> <?php print __('SSL Certificate');?>
</td> </td>
</tr> </tr>
@ -228,7 +222,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('SSL Key');?> <?php print __('SSL Key');?>
</td> </td>
</tr> </tr>
@ -238,7 +232,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span> <?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span>
</td> </td>
</tr> </tr>
@ -251,7 +245,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Web Statistics');?> <?php print __('Web Statistics');?>
</td> </td>
</tr> </tr>
@ -273,20 +267,15 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Statistics Authorization');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"><?php print __('Statistics Authorization');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user"> <table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Username');?> <?php print __('Username');?>
</td> </td>
</tr> </tr>
@ -296,80 +285,106 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a> <?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="text" size="20" class="vst-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password"> <input type="text" size="20" class="vst-input password" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Additional FTP Account');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');">
<?php foreach ($v_ftp_users as $i => $ftp_user): ?>
<?php
$v_ftp_user = $ftp_user['v_ftp_user'];
$v_ftp_password = $ftp_user['v_ftp_password'];
$v_ftp_path = $ftp_user['v_ftp_path'];
$v_ftp_email = $ftp_user['v_ftp_email'];
$v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
?>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?php print $i ?>][is_new]" value="<?php print $ftp_user['is_new'] ?>" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="vst-text step-left input-label">
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp"> <?php print __('Username');?><br>
<tr> <span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Username');?>
<?php if (empty($v_ftp_user)) echo '<br><span style="font-size: 10pt; color:#777;">' . __('Prefix will be automaticaly added to username',$user."_") . '</span>' ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" size="20" class="vst-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user;?>> <input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?> name="v_ftp_user[<?php print $i ?>][v_ftp_user]" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
<small class="hint"></small> <small class="hint"></small>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:FTPrandom();" class="generate"><?php print __('generate');?></a> <?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" class="vst-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password;?>> <input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[<?php print $i ?>][v_ftp_password]" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td> </td>
</tr> </tr>
<?php
if (empty($v_ftp_user)) {
echo '';
?>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="<?php print !empty($v_ftp_pre_path) ? $v_ftp_pre_path : '/'; ?>">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[<?php print $i ?>][v_ftp_path]" <?php if (!empty($v_ftp_path)) echo "value=".($v_ftp_path[0] != '/' ? '/' : '').$v_ftp_path; ?>>
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<?php if ($ftp_user['is_new'] == 1): ?>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?> <?php print __('Send FTP credentials to email');?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" class="vst-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>> <input type="text" class="vst-input" name="v_ftp_user[<?php print $i ?>][v_ftp_email]" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td> </td>
</tr> </tr>
<?php <?php endif; ?>
}
?>
</table> </table>
<?php endforeach; ?>
</td>
</tr>
<tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
<td class="vst-text step-top v-add-new-user step-bottom">
<a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print __('Add one more FTP Account');?></a>
</td> </td>
</tr> </tr>
</table> </table>
<table class="data-col2"> <table class="data-col2">
<tr> <tr>
<td style="padding: 24px 0 0 0;" width="116px"> <td class="step-top" width="116px">
<input type="submit" class="button" name="save" value="<?php print __('Save');?>"> <input type="submit" class="button" name="save" value="<?php print __('Save');?>">
</td> </td>
<td style="padding: 24px 0 0 0;"> <td class="step-top">
<input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>"> <input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>">
</td> </td>
</tr> </tr>
@ -378,7 +393,74 @@
</tr> </tr>
</table> </table>
</form> </form>
<div id="templates" class="hidden">
<table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" value="">
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[%INDEX%][v_ftp_password]" value="">
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" value="">
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path_new_user ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[%INDEX%][v_ftp_email]" value="">
</td>
</tr>
</table>
</div>
<script type="text/javascript"> <script type="text/javascript">
GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_'; GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_';
$('#vstobjects').bind('submit', function(evt) {
$('input[disabled]').each(function(i, elm) {
var copy_elm = $(elm).clone(true);
$(copy_elm).attr('type', 'hidden');
$(copy_elm).removeAttr('disabled');
$(elm).after(copy_elm);
});
});
</script> </script>
<script type="text/javascript" src="/js/pages/edit.web.js"></script> <script type="text/javascript" src="/js/pages/edit.web.js"></script>

View file

@ -10,12 +10,15 @@
<tr> <tr>
<td style="padding: 20px 10px;" ><a class="name"><b><?php print __('Editing Domain');?></b></a> <td style="padding: 20px 10px;" ><a class="name"><b><?php print __('Editing Domain');?></b></a>
<?php <?php
if (!empty($_SESSION['error_msg'])) {
echo "<span class=\"vst-error\"> → ".$_SESSION['error_msg']."</span>";
} else {
if (!empty($_SESSION['ok_msg'])) { if (!empty($_SESSION['ok_msg'])) {
echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>"; echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>";
} }
if (!empty($_SESSION['error_msg'])) {
echo "<span class=\"vst-error\"> → ".$_SESSION['error_msg']."</span>";
}
if (!empty($_SESSION['flash_error_msg'])) {
echo "<br /><span class=\"vst-error\"> → ".$_SESSION['flash_error_msg']."</span>";
unset($_SESSION['flash_error_msg']);
} }
?> ?>
</td> </td>
@ -36,7 +39,7 @@
document.v_edit_web.v_stats_password.value = webrandom; document.v_edit_web.v_stats_password.value = webrandom;
} }
function FTPrandom() { function FTPrandom(elm) {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10; var string_length = 10;
var ftprandomstring = ''; var ftprandomstring = '';
@ -44,7 +47,8 @@
var rnum = Math.floor(Math.random() * chars.length); var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1); ftprandomstring += chars.substring(rnum,rnum+1);
} }
document.v_edit_web.v_ftp_password.value = ftprandomstring;
$(elm).parents('.ftptable').find('.v-ftp-user-psw').val(ftprandomstring);
} }
function elementHideShow(elementToHideOrShow){ function elementHideShow(elementToHideOrShow){
@ -72,7 +76,7 @@
<td class="data-dotted"> <td class="data-dotted">
<table class="data-col2"> <table class="data-col2">
<tr> <tr>
<td class="vst-text" style="padding: 24px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Domain');?> <?php print __('Domain');?>
</td> </td>
</tr> </tr>
@ -82,7 +86,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('IP Address');?> <?php print __('IP Address');?>
</td> </td>
</tr> </tr>
@ -105,7 +109,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Aliases');?> <?php print __('Aliases');?>
</td> </td>
</tr> </tr>
@ -115,17 +119,12 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Proxy Support');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');"> <?php print __('Proxy Support');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="checkbox" size="20" class="vst-checkbox" name="v_proxy" <?php if (!empty($v_proxy)) echo "checked=yes" ?> onclick="javascript:elementHideShow('proxytable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable"> <table style="display:<?php if (empty($v_proxy)) { echo 'none';} else {echo 'block';}?> ;" id="proxytable">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text" style="padding: 12px 0 0 0;">
@ -141,21 +140,16 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('SSL Support');?> / <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes' || $v_ssl == 'on') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');"> <?php print __('SSL Support');?></label> /
<a class="generate" target="_blank" href="/generate/ssl/?domain=<?php echo $v_domain ?>"><?php print __('Generate CSR') ?></a> <a class="generate" target="_blank" href="/generate/ssl/?domain=<?php echo $v_domain ?>"><?php print __('Generate CSR') ?></a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="checkbox" size="20" class="vst-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable"> <table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('SSL Home Directory');?> <?php print __('SSL Home Directory');?>
</td> </td>
</tr> </tr>
@ -173,7 +167,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('SSL Certificate');?> <?php print __('SSL Certificate');?>
</td> </td>
</tr> </tr>
@ -183,7 +177,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('SSL Key');?> <?php print __('SSL Key');?>
</td> </td>
</tr> </tr>
@ -193,7 +187,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span> <?php print __('SSL Certificate Authority / Intermediate');?> <span class="optional">(<?php print __('optional');?>)</span>
</td> </td>
</tr> </tr>
@ -206,7 +200,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Web Statistics');?> <?php print __('Web Statistics');?>
</td> </td>
</tr> </tr>
@ -228,20 +222,15 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Statistics Authorization');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"> <?php print __('Statistics Authorization');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="checkbox" size="20" class="vst-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user"> <table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v-add-web-domain-stats-user">
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Username');?> <?php print __('Username');?>
</td> </td>
</tr> </tr>
@ -251,7 +240,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text input-label">
<?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a> <?php print __('Password');?> / <a href="javascript:WEBrandom();" class="generate"><?php print __('generate');?></a>
</td> </td>
</tr> </tr>
@ -264,67 +253,95 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-top">
<?php print __('Additional FTP Account');?> <label><input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="App.Actions.WEB.toggle_additional_ftp_accounts(this)"> <?php print __('Additional FTP Account');?></label>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" size="20" class="vst-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');">
<?php foreach ($v_ftp_users as $i => $ftp_user): ?>
<?php
$v_ftp_user = $ftp_user['v_ftp_user'];
$v_ftp_password = $ftp_user['v_ftp_password'];
$v_ftp_path = $ftp_user['v_ftp_path'];
$v_ftp_email = $ftp_user['v_ftp_email'];
$v_ftp_pre_path = $ftp_user['v_ftp_pre_path'];
?>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"><?php print $i + 1; ?></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[<?php print $i ?>][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[<?php print $i ?>][is_new]" value="<?php print $ftp_user['is_new'] ?>" />
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="vst-text step-left input-label">
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp"> <?php print __('Username');?><br>
<tr> <span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
<td class="vst-text" style="padding: 12px 0 0 0;">
<?php print __('Username');?>
<?php if (empty($v_ftp_user)) echo '<br><span style="font-size: 10pt; color:#777;">' . __('Prefix will be automaticaly added to username',$user."_") . '</span>' ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" size="20" class="vst-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user;?>> <input type="text" size="20" class="vst-input v-ftp-user" <?php print $ftp_user['is_new'] != 1 ? 'disabled="disabled"' : '' ?> name="v_ftp_user[<?php print $i ?>][v_ftp_user]" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
<small class="hint"></small> <small class="hint"></small>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:FTPrandom();" class="generate"><?php print __('generate');?></a> <?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" class="vst-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password;?>> <input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[<?php print $i ?>][v_ftp_password]" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td> </td>
</tr> </tr>
<?php
if (empty($v_ftp_user)) {
echo '';
?>
<tr> <tr>
<td class="vst-text" style="padding: 12px 0 0 0;"> <td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="<?php print !empty($v_ftp_pre_path) ? $v_ftp_pre_path : '/'; ?>">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[<?php print $i ?>][v_ftp_path]" <?php if (!empty($v_ftp_path)) echo "value=".($v_ftp_path[0] != '/' ? '/' : '').$v_ftp_path; ?>>
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<?php if ($ftp_user['is_new'] == 1): ?>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?> <?php print __('Send FTP credentials to email');?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td class="step-left">
<input type="text" class="vst-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>> <input type="text" class="vst-input" name="v_ftp_user[<?php print $i ?>][v_ftp_email]" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td> </td>
</tr> </tr>
<?php <?php endif; ?>
}
?>
</table> </table>
<?php endforeach; ?>
</td>
</tr>
<tr class="add-new-ftp-user-button" style="<?php print !empty($v_ftp_user) ? '' : 'display:none;' ?>">
<td class="vst-text step-top v-add-new-user step-bottom">
<a class="additional-control" onClick="App.Actions.WEB.add_ftp_user_form()"><?php print __('Add one more FTP Account');?></a>
</td> </td>
</tr> </tr>
</table> </table>
<table class="data-col2"> <table class="data-col2">
<tr> <tr>
<td style="padding: 24px 0 0 0;" width="116px"> <td class="step-top" width="116px">
<input type="submit" class="button" name="save" value="<?php print __('Save');?>"> <input type="submit" class="button" name="save" value="<?php print __('Save');?>">
</td> </td>
<td style="padding: 24px 0 0 0;"> <td class="step-top">
<input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>"> <input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>">
</td> </td>
</tr> </tr>
@ -333,7 +350,73 @@
</tr> </tr>
</table> </table>
</form> </form>
<div id="templates" class="hidden">
<table class="ftptable ftptable-nrm" name="v_add_domain_ftp">
<tr>
<td class="vst-text input-label">
<?php print __('FTP') ?> #<span class="ftp-user-number"></span> <a class="ftp-remove-user additional-control" onCLick="App.Actions.WEB.remove_ftp_user(this)">(<?php print __('remove') ?>)</a>
<input type="hidden" class="v-ftp-user-deleted" name="v_ftp_user[%INDEX%][delete]" value="0" />
<input type="hidden" class="v-ftp-user-is-new" name="v_ftp_user[%INDEX%][is_new]" value="1" />
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Username');?><br>
<span style="font-size: 10pt; color:#777;"><?php print __('Prefix will be automaticaly added to username',$user."_");?></span>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" size="20" class="vst-input v-ftp-user" name="v_ftp_user[%INDEX%][v_ftp_user]" value="">
<small class="hint"></small>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Password');?> / <a href="javascript:void(0);" onClick="FTPrandom(this)"; class="generate" ><?php print __('generate');?></a>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input v-ftp-user-psw password" name="v_ftp_user[%INDEX%][v_ftp_password]" value="">
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Path');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="hidden" class="vst-input v-ftp-pre-path" name="v_ftp_pre_path" value="">
<input type="text" class="vst-input v-ftp-path" name="v_ftp_user[%INDEX%][v_ftp_path]" value="">
<br /><span class="ftp-path-prefix"><?php print $v_ftp_pre_path_new_user ?></span><span class="ftp-path-value v-ftp-path-hint"></span>
</td>
</tr>
<tr>
<td class="vst-text step-left input-label">
<?php print __('Send FTP credentials to email');?>
</td>
</tr>
<tr>
<td class="step-left">
<input type="text" class="vst-input" name="v_ftp_user[%INDEX%][v_ftp_email]" value="">
</td>
</tr>
</table>
</div>
<script type="text/javascript"> <script type="text/javascript">
GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_'; GLOBAL.FTP_USER_PREFIX = '<?php echo $user; ?>_';
$('#vstobjects').bind('submit', function(evt) {
$('input[disabled]').each(function(i, elm) {
var copy_elm = $(elm).clone(true);
$(copy_elm).attr('type', 'hidden');
$(copy_elm).removeAttr('disabled');
$(elm).after(copy_elm);
});
});
</script> </script>
<script type="text/javascript" src="/js/pages/edit.web.js"></script> <script type="text/javascript" src="/js/pages/edit.web.js"></script>