added additional web ftp accounts

This commit is contained in:
Serghey Rodin 2012-10-09 15:33:59 +03:00
commit 7c3419b012
16 changed files with 1117 additions and 353 deletions

View file

@ -133,14 +133,14 @@ chown root:apache $conf
# Changing file permissions # Changing file permissions
chmod 660 $conf chmod 660 $conf
chmod 551 $HOMEDIR/$user/web/$domain chmod 551 $HOMEDIR/$user/web/$domain
chmod 751 $HOMEDIR/$user/web/$domain/private chmod 771 $HOMEDIR/$user/web/$domain/private
chmod 751 $HOMEDIR/$user/web/$domain/cgi-bin chmod 771 $HOMEDIR/$user/web/$domain/cgi-bin
chmod 751 $HOMEDIR/$user/web/$domain/public_html chmod 771 $HOMEDIR/$user/web/$domain/public_html
chmod 751 $HOMEDIR/$user/web/$domain/public_shtml chmod 771 $HOMEDIR/$user/web/$domain/public_shtml
chmod 751 $HOMEDIR/$user/web/$domain/document_errors chmod 771 $HOMEDIR/$user/web/$domain/document_errors
chmod -f -R 775 $HOMEDIR/$user/web/$domain/cgi-bin/* chmod -f -R 665 $HOMEDIR/$user/web/$domain/cgi-bin/*
chmod -f -R 775 $HOMEDIR/$user/web/$domain/public_html/* chmod -f -R 665 $HOMEDIR/$user/web/$domain/public_html/*
chmod -f -R 775 $HOMEDIR/$user/web/$domain/document_errors/* chmod -f -R 665 $HOMEDIR/$user/web/$domain/document_errors/*
chmod 551 $HOMEDIR/$user/web/$domain/stats chmod 551 $HOMEDIR/$user/web/$domain/stats
chmod 551 $HOMEDIR/$user/web/$domain/logs chmod 551 $HOMEDIR/$user/web/$domain/logs
chmod 640 /var/log/httpd/domains/$domain.* chmod 640 /var/log/httpd/domains/$domain.*
@ -169,9 +169,10 @@ increase_user_value "$user" '$U_WEB_ALIASES'
# Defining domain variables # Defining domain variables
str="DOMAIN='$domain' IP='$ip' IP6='' ALIAS='$aliases' TPL='$template'" str="DOMAIN='$domain' IP='$ip' IP6='' ALIAS='$aliases' TPL='$template'"
str="$str CGI='yes' ELOG='yes' SSL='no' SSL_HOME='single' NGINX=''" str="$str CGI='yes' ELOG='yes' SSL='no' SSL_HOME='same' FTP_USER=''"
str="$str NGINX_EXT='' STATS='' STATS_USER='' STATS_CRYPT='' U_DISK='0'" str="$str FTP_MD5='' NGINX='' NGINX_EXT='' STATS='' STATS_USER=''"
str="$str U_BANDWIDTH='0' SUSPENDED='no' TIME='$TIME' DATE='$DATE'" str="$str STATS_CRYPT='' U_DISK='0' U_BANDWIDTH='0' SUSPENDED='no'"
str="$str TIME='$TIME' DATE='$DATE'"
# Registering domain # Registering domain
echo "$str" >> $USER_DATA/web.conf echo "$str" >> $USER_DATA/web.conf

71
bin/v_add_web_domain_ftp Executable file
View file

@ -0,0 +1,71 @@
#!/bin/bash
# info: add ftp account for web domain.
# options: user domain ftp_user ftp_password
#
# The function creates addutional ftp account for web domain.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
ftp_user=${1}_${3}
ftp_password=$4
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
# Hiding password
A4='******'
EVENT="DATE='$DATE' TIME='$TIME' CMD='$SCRIPT' A1='$A1' A2='$A2' A3='$A3'"
EVENT="$EVENT A4='$A4' A5='$A5' A6='$A6' A7='$A7' A8='$A8' A9='$A9'"
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '4' "$#" 'user domain ftp_user ftp_password'
validate_format 'user' 'domain' 'ftp_user' 'ftp_password'
is_system_enabled "$WEB_SYSTEM"
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_unsuspended 'web' 'DOMAIN' "$domain"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Get domain values
get_domain_values 'web'
if [ ! -z "$FTP_USER" ]; then
/usr/sbin/userdel $FTP_USER
fi
# Adding user
/usr/sbin/adduser $ftp_user -g $user -s /sbin/nologin -M \
-d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
echo "$ftp_password" | /usr/bin/passwd "$ftp_user" --stdin &>/dev/null
ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)"
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Update config
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
# Logging
log_history "added ftp account $ftp_user for $domain"
log_event "$OK" "$EVENT"
exit

62
bin/v_change_web_domain_ftp Executable file
View file

@ -0,0 +1,62 @@
#!/bin/bash
# info: add ftp account for web domain.
# options: user domain ftp_user ftp_password
#
# The function creates addutional ftp account for web domain.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
ftp_user=${1}_${3}
ftp_password=$4
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '4' "$#" 'user domain ftp_user ftp_password'
validate_format 'user' 'domain' 'ftp_user' 'ftp_password'
is_system_enabled "$WEB_SYSTEM"
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_unsuspended 'web' 'DOMAIN' "$domain"
is_object_value_empty 'web' 'DOMAIN' "$domain" '$FTP_USER'
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Adding user
/usr/sbin/adduser $ftp_user -g $user -s /sbin/nologin -M \
-d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
echo "$ftp_password" | /usr/bin/passwd "$ftp_user" --stdin &>/dev/null
ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)"
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Update config
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
# Logging
log_history "added ftp account $ftp_user for $domain"
log_event "$OK" "$EVENT"
exit

View file

@ -87,6 +87,11 @@ if [ ! -z "$STATS" ] && [ "$STATS" != 'no' ]; then
rm -f $HOMEDIR/$user/conf/web/$STATS.$domain.conf rm -f $HOMEDIR/$user/conf/web/$STATS.$domain.conf
fi fi
# Deleting ftp account
if [ ! -z "$FTP_USER" ]; then
/usr/sbin/userdel $FTP_USER
fi
# Deleting directory # Deleting directory
rm -rf $HOMEDIR/$user/web/$domain rm -rf $HOMEDIR/$user/web/$domain

58
bin/v_delete_web_domain_ftp Executable file
View file

@ -0,0 +1,58 @@
#!/bin/bash
# info: delete webdomain ftp account.
# options: user domain
#
# The function deletes additional ftp account.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'user domain'
validate_format 'user' 'domain'
is_system_enabled "$WEB_SYSTEM"
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_unsuspended 'web' 'DOMAIN' "$domain"
is_object_value_exist 'web' 'DOMAIN' "$domain" '$FTP_USER'
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Adding user
get_domain_values 'web'
/usr/sbin/userdel $FTP_USER
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Update config
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' ''
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' ''
# Logging
log_history "deleted ftp account $FTP_USER for $domain"
log_event "$OK" "$EVENT"
exit

View file

@ -76,7 +76,7 @@ conf=$USER_DATA/web.conf
# Defining fileds to select # Defining fileds to select
fields='$DOMAIN $IP $IP6 $U_DISK $U_BANDWIDTH $TPL $ALIAS $CGI $ELOG $STATS fields='$DOMAIN $IP $IP6 $U_DISK $U_BANDWIDTH $TPL $ALIAS $CGI $ELOG $STATS
$STATS_USER $SSL $SSL_HOME $NGINX $NGINX_EXT $SUSPENDED $TIME $DATE' $STATS_USER $SSL $SSL_HOME $FTP_USER $NGINX $NGINX_EXT $SUSPENDED $TIME $DATE'
# Listing domains # Listing domains
case $format in case $format in

View file

@ -35,8 +35,8 @@ conf=$USER_DATA/web.conf
# Defining fileds to select # Defining fileds to select
fields="\$DOMAIN \$IP \$IP6 \$U_DISK \$U_BANDWIDTH \$TPL \$ALIAS \$CGI" fields="\$DOMAIN \$IP \$IP6 \$U_DISK \$U_BANDWIDTH \$TPL \$ALIAS \$CGI"
fields="$fields \$ELOG \$STATS \$STATS_USER \$SSL \$SSL_HOME \$NGINX" fields="$fields \$ELOG \$STATS \$STATS_USER \$SSL \$SSL_HOME \$FTP_USER"
fields="$fields \$NGINX_EXT \$SUSPENDED \$TIME \$DATE" fields="$fields \$NGINX \$NGINX_EXT \$SUSPENDED \$TIME \$DATE"
# Listing domains # Listing domains
case $format in case $format in

View file

@ -77,12 +77,11 @@ for domain in $(shell_list) ; do
/var/log/httpd/domains/$domain.error.log /var/log/httpd/domains/$domain.error.log
chmod 551 $HOMEDIR/$user/web/$domain chmod 551 $HOMEDIR/$user/web/$domain
chmod 751 $HOMEDIR/$user/web/$domain/private chmod 771 $HOMEDIR/$user/web/$domain/private
chmod 751 $HOMEDIR/$user/web/$domain/cgi-bin chmod 771 $HOMEDIR/$user/web/$domain/cgi-bin
chmod 751 $HOMEDIR/$user/web/$domain/public_html chmod 771 $HOMEDIR/$user/web/$domain/public_html
chmod 751 $HOMEDIR/$user/web/$domain/public_shtml chmod 771 $HOMEDIR/$user/web/$domain/public_shtml
chmod 751 $HOMEDIR/$user/web/$domain/document_errors chmod 771 $HOMEDIR/$user/web/$domain/document_errors
chmod -f -R 775 $HOMEDIR/$user/web/$domain/document_errors/*
chmod 551 $HOMEDIR/$user/web/$domain/stats chmod 551 $HOMEDIR/$user/web/$domain/stats
chmod 551 $HOMEDIR/$user/web/$domain/logs chmod 551 $HOMEDIR/$user/web/$domain/logs
chmod 640 /var/log/httpd/domains/$domain.* chmod 640 /var/log/httpd/domains/$domain.*
@ -208,6 +207,31 @@ for domain in $(shell_list) ; do
suspended_web=$((suspended_web + 1)) suspended_web=$((suspended_web + 1))
fi fi
user_domains=$((user_domains + 1)) user_domains=$((user_domains + 1))
# Checking ftp
if [ ! -z "$FTP_USER" ]; then
if [ -z "$(grep ^$FTP_USER: /etc/passwd)" ]; then
/usr/sbin/adduser $FTP_USER -g $user -s /sbin/nologin -M \
-d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
shadow='/etc/shadow'
shdw=$(grep "^$FTP_USER:" $shadow)
shdw3=$(echo "$shdw" | cut -f3 -d :)
shdw4=$(echo "$shdw" | cut -f4 -d :)
shdw5=$(echo "$shdw" | cut -f5 -d :)
shdw6=$(echo "$shdw" | cut -f6 -d :)
shdw7=$(echo "$shdw" | cut -f7 -d :)
shdw8=$(echo "$shdw" | cut -f8 -d :)
shdw9=$(echo "$shdw" | cut -f9 -d :)
chmod u+w $shadow
sed -i "/^$FTP_USER:*/d" $shadow
shdw_str="$FTP_USER:$FTP_MD5:$shdw3:$shdw4:$shdw5:$shdw6"
shdw_str="$shdw_str:$shdw7:$shdw8:$shdw9"
echo "$shdw_str" >> $shadow
chmod u-w $shadow
fi
fi
done done
# Renaming tmp config # Renaming tmp config

View file

@ -726,6 +726,8 @@ validate_format(){
extentions) validate_format_common "$arg" 'extentions' ;; extentions) validate_format_common "$arg" 'extentions' ;;
fname) validate_format_username "$arg" "$arg_name" ;; fname) validate_format_username "$arg" "$arg_name" ;;
forward) validate_format_email "$arg" ;; forward) validate_format_email "$arg" ;;
ftp_password) validate_format_password "$arg" ;;
ftp_user) validate_format_username "$arg" "$arg_name" ;;
host) validate_format_domain "$arg" "$arg_name" ;; host) validate_format_domain "$arg" "$arg_name" ;;
hour) validate_format_mhdmw "$arg" $arg_name ;; hour) validate_format_mhdmw "$arg" $arg_name ;;
id) validate_format_int "$arg" ;; id) validate_format_int "$arg" ;;

View file

@ -18,7 +18,20 @@ top_panel($user,$TAB);
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'])) || (!empty($_POST['v_elog'])) || (!empty($_POST['v_ssl'])) || (!empty($_POST['v_ssl_crt'])) || (!empty($_POST['v_ssl_key'])) || (!empty($_POST['v_ssl_ca'])) || ($_POST['v_stats'] != 'none') || (empty($_POST['v_nginx']))) $v_adv = 'yes'; if ((!empty($_POST['v_stats_user'])) && (empty($_POST['v_stats_password']))) $errors[] = 'stats user password';
if ((!empty($_POST['v_ftp_user'])) && (empty($_POST['v_ftp_password']))) $errors[] = 'ftp user password';
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($_POST['v_nginx'])) $v_adv = 'yes';
if (!empty($_POST['v_ftp'])) $v_adv = 'yes';
$v_nginx_ext = 'jpg, jpeg, gif, png, ico, svg, css, zip, tgz, gz, rar, bz2, exe, pdf, ';
$v_nginx_ext .= 'doc, xls, ppt, txt, odt, ods, odp, odf, tar, bmp, rtf, js, mp3, avi, ';
$v_nginx_ext .= 'mpeg, flv, html, htm';
if ($_POST['v_nginx_ext'] != $v_nginx_ext) $v_adv = 'yes';
// Protect input // Protect input
$v_domain = preg_replace("/^www./i", "", $_POST['v_domain']); $v_domain = preg_replace("/^www./i", "", $_POST['v_domain']);
@ -38,7 +51,24 @@ top_panel($user,$TAB);
$v_ssl_crt = $_POST['v_ssl_crt']; $v_ssl_crt = $_POST['v_ssl_crt'];
$v_ssl_key = $_POST['v_ssl_key']; $v_ssl_key = $_POST['v_ssl_key'];
$v_ssl_ca = $_POST['v_ssl_ca']; $v_ssl_ca = $_POST['v_ssl_ca'];
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
$v_stats = escapeshellarg($_POST['v_stats']); $v_stats = escapeshellarg($_POST['v_stats']);
$v_stats_user = $data[$v_domain]['STATS_USER'];
$v_stats_password = $data[$v_domain]['STATS_PASSWORD'];
$v_nginx_ext = preg_replace("/\n/", " ", $_POST['v_nginx_ext']);
$v_nginx_ext = preg_replace("/,/", " ", $v_nginx_ext);
$v_nginx_ext = preg_replace('/\s+/', ' ',$v_nginx_ext);
$v_nginx_ext = trim($v_nginx_ext);
$v_nginx_ext = str_replace(' ', ", ", $v_nginx_ext);
$v_ftp = $_POST['v_ftp'];
$v_ftp_user = $_POST['v_ftp_user'];
$v_ftp_password = $_POST['v_ftp_password'];
$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 for errors // Check for errors
if (!empty($errors[0])) { if (!empty($errors[0])) {
@ -50,7 +80,9 @@ top_panel($user,$TAB);
} }
} }
$_SESSION['error_msg'] = "Error: field ".$error_msg." can not be blank."; $_SESSION['error_msg'] = "Error: field ".$error_msg." can not be blank.";
} else { }
if (empty($_SESSION['error_msg'])) {
// Add WEB // Add WEB
exec (VESTA_CMD."v_add_web_domain ".$user." ".$v_domain." ".$v_ip." ".$v_template." 'no'", $output, $return_var); exec (VESTA_CMD."v_add_web_domain ".$user." ".$v_domain." ".$v_ip." ".$v_template." 'no'", $output, $return_var);
if ($return_var != 0) { if ($return_var != 0) {
@ -90,6 +122,9 @@ top_panel($user,$TAB);
$valiases = trim($valiases); $valiases = trim($valiases);
$aliases = explode(" ", $valiases); $aliases = explode(" ", $valiases);
foreach ($aliases as $alias) { foreach ($aliases as $alias) {
if ($alias == 'www.'.$_POST['v_domain']) {
$www_alias = 'yes';
} else {
$alias = escapeshellarg($alias); $alias = escapeshellarg($alias);
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);
@ -111,22 +146,25 @@ top_panel($user,$TAB);
} }
} }
} }
}
// Add ErrorLog if ((empty($www_alias)) && (empty($_SESSION['error_msg']))) {
if ((!empty($_POST['v_elog'])) && (empty($_SESSION['error_msg']))) { $alias = preg_replace("/^www./i", "", $_POST['v_domain']);
exec (VESTA_CMD."v_add_web_domain_elog ".$user." ".$v_domain." 'no'", $output, $return_var); $alias = 'www.'.$alias;
$alias = escapeshellarg($alias);
exec (VESTA_CMD."v_delete_web_domain_alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
if ($return_var != 0) { if ($return_var != 0) {
$error = implode('<br>', $output); $error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.'; if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error; $_SESSION['error_msg'] = $error;
} }
unset($output);
} }
// Add Nginx // Add Nginx
if (($_POST['v_nginx'] == 'on') && (empty($_SESSION['error_msg']))) { if (($_POST['v_nginx'] == 'on') && (empty($_SESSION['error_msg']))) {
$nginx_ext = "'jpg,jpeg,gif,png,ico,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,tar,wav,bmp,rtf,js,mp3,avi,mpeg,html,htm'"; $ext = str_replace(' ', '', $v_nginx_ext);
exec (VESTA_CMD."v_add_web_domain_nginx ".$user." ".$v_domain." 'default' ".$nginx_ext." 'no'", $output, $return_var); $ext = escapeshellarg($ext);
exec (VESTA_CMD."v_add_web_domain_nginx ".$user." ".$v_domain." 'default' ".$ext." 'no'", $output, $return_var);
if ($return_var != 0) { if ($return_var != 0) {
$error = implode('<br>', $output); $error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.'; if (empty($error)) $error = 'Error: vesta did not return any output.';
@ -161,7 +199,8 @@ top_panel($user,$TAB);
fclose($fp); fclose($fp);
} }
exec (VESTA_CMD."v_add_web_domain_ssl ".$user." ".$v_domain." ".$tmpdir." 'same' 'no'", $output, $return_var); $v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
exec (VESTA_CMD."v_add_web_domain_ssl ".$user." ".$v_domain." ".$tmpdir." ".$v_ssl_home." 'no'", $output, $return_var);
if ($return_var != 0) { if ($return_var != 0) {
$error = implode('<br>', $output); $error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.'; if (empty($error)) $error = 'Error: vesta did not return any output.';
@ -180,6 +219,52 @@ top_panel($user,$TAB);
$_SESSION['error_msg'] = $error; $_SESSION['error_msg'] = $error;
} }
unset($output); unset($output);
if ((!empty($_POST['v_stats_user'])) && (empty($_SESSION['error_msg']))) {
$v_stats_user = escapeshellarg($_POST['v_stats_user']);
$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);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
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);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
} else {
if (!empty($v_ftp_email)) {
$to = $_POST['v_ftp_email'];
$subject = "FTP login credentials";
$hostname = exec('hostname');
$from = "Vesta Control Panel <noreply@".$hostname.">";
$mailtext .= "Your ftp account has been created successfully and is ready to use.\n\n";
$mailtext .= "ip: ".$_POST['v_ip']."\n";
$mailtext .= "domain: ".$_POST['v_domain']."\n";
$mailtext .= "username: ".$user."_".$_POST['v_ftp_user']."\n";
$mailtext .= "password: ".$_POST['v_ftp_password']."\n\n";
$mailtext .= "--\nVesta Control Panel\n";
send_email($to, $subject, $mailtext, $from);
unset($v_ftp_email);
}
}
unset($v_ftp);
unset($v_ftp_user);
unset($v_ftp_password);
unset($output);
} }
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) { if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {

View file

@ -123,6 +123,10 @@ if ($_SESSION['user'] == 'admin') {
// Change contact email // Change contact email
if (($v_email != $_POST['v_email']) && (empty($_SESSION['error_msg']))) { if (($v_email != $_POST['v_email']) && (empty($_SESSION['error_msg']))) {
// Validate email
if (!filter_var($_POST['v_email'], FILTER_VALIDATE_EMAIL)) {
$_SESSION['error_msg'] = 'Please enter valid email address.';
} else {
$v_email = escapeshellarg($_POST['v_email']); $v_email = escapeshellarg($_POST['v_email']);
exec (VESTA_CMD."v_change_user_contact ".$v_username." ".$v_email, $output, $return_var); exec (VESTA_CMD."v_change_user_contact ".$v_username." ".$v_email, $output, $return_var);
if ($return_var != 0) { if ($return_var != 0) {
@ -130,6 +134,7 @@ if ($_SESSION['user'] == 'admin') {
if (empty($error)) $error = 'Error: vesta did not return any output.'; if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error; $_SESSION['error_msg'] = $error;
} }
}
unset($output); unset($output);
} }

View file

@ -61,6 +61,8 @@ top_panel($user,$TAB);
$v_stats = $data[$v_domain]['STATS']; $v_stats = $data[$v_domain]['STATS'];
$v_stats_user = $data[$v_domain]['STATS_USER']; $v_stats_user = $data[$v_domain]['STATS_USER'];
if (!empty($v_stats_user)) $v_stats_password = "••••••••"; 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']; $v_suspended = $data[$v_domain]['SUSPENDED'];
if ( $v_suspended == 'yes' ) { if ( $v_suspended == 'yes' ) {
$v_status = 'suspended'; $v_status = 'suspended';
@ -197,30 +199,6 @@ top_panel($user,$TAB);
} }
} }
// Elog
if (($v_elog == 'yes') && (empty($_POST['v_elog'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_delete_web_domain_elog ".$v_username." ".$v_domain." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$restart_web = 'yes';
$v_elog = 'no';
}
if (($v_elog == 'no') && (!empty($_POST['v_elog'])) && (empty($_SESSION['error_msg'])) ) {
exec (VESTA_CMD."v_add_web_domain_elog ".$v_username." ".$v_domain." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$restart_web = 'yes';
$v_elog = 'yes';
}
// Nginx // Nginx
if ((!empty($v_nginx)) && (empty($_POST['v_nginx'])) && (empty($_SESSION['error_msg']))) { if ((!empty($v_nginx)) && (empty($_POST['v_nginx'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_delete_web_domain_nginx ".$v_username." ".$v_domain." 'no'", $output, $return_var); exec (VESTA_CMD."v_delete_web_domain_nginx ".$v_username." ".$v_domain." 'no'", $output, $return_var);
@ -487,6 +465,91 @@ top_panel($user,$TAB);
} }
} }
// FTP Account
if ((!empty($v_ftp_user)) && (empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_delete_web_domain_ftp ".$v_username." ".$v_domain, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_ftp= '';
$v_ftp_user = '';
$v_ftp_password = '';
}
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 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'] = "Error: field ".$error_msg." can not be blank.";
}
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);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_ftp_user = $user."_".$_POST['v_ftp_user'];
$v_ftp_password = "••••••••";
}
}
if ((empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
if ((!empty($_POST['v_ftp_email'])) && (!filter_var($_POST['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = 'Please enter valid email address.';
if (empty($_POST['v_ftp_user'])) $errors[] = 'ftp username';
if (empty($_POST['v_ftp_password'])) $errors[] = 'ftp 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'] = "Error: field ".$error_msg." can not be blank.";
}
if (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 ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
} else {
if (!empty($_POST['v_ftp_email'])) {
$to = $_POST['v_ftp_email'];
$subject = "FTP login credentials";
$hostname = exec('hostname');
$from = "Vesta Control Panel <noreply@".$hostname.">";
$mailtext .= "Your ftp account has been created successfully and is ready to use.\n\n";
$mailtext .= "ip: ".$v_ip."\n";
$mailtext .= "domain: ".$_GET['domain']."\n";
$mailtext .= "username: ".$user."_".$_POST['v_ftp_user']."\n";
$mailtext .= "password: ".$_POST['v_ftp_password']."\n\n";
$mailtext .= "--\nVesta Control Panel\n";
send_email($to, $subject, $mailtext, $from);
unset($v_ftp_email);
}
}
unset($output);
$v_ftp_user = $user."_".$_POST['v_ftp_user'];
$v_ftp_password = "••••••••";
}
}
// Restart web // Restart web
if (!empty($restart_web) && (empty($_SESSION['error_msg']))) { if (!empty($restart_web) && (empty($_SESSION['error_msg']))) {

View file

@ -27,7 +27,35 @@
</table> </table>
<form id="vstobjects" name="v_add_web" method="post"> <form id="vstobjects" name="v_add_web" method="post">
<script language="javascript"> <script type="text/javascript">
$(function() {
$("#v_domain").change(function() {
var prefix = 'www.';
document.getElementById('v_aliases').value = prefix + document.getElementById('v_domain').value;
});
});
function WEBrandom() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var webrandom = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
webrandom += chars.substring(rnum,rnum+1);
}
document.v_add_web.v_stats_password.value = webrandom;
}
function FTPrandom() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var ftprandomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1);
}
document.v_add_web.v_ftp_password.value = ftprandomstring;
}
function elementHideShow(elementToHideOrShow){ function elementHideShow(elementToHideOrShow){
var el = document.getElementById(elementToHideOrShow); var el = document.getElementById(elementToHideOrShow);
if (el.style.display == "block") { if (el.style.display == "block") {
@ -61,7 +89,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="text" size="20" class="add-input" name="v_domain" <?php if (!empty($v_domain)) echo "value=".$v_domain; ?>> <input type="text" size="20" class="add-input" name="v_domain" id="v_domain" <?php if (!empty($v_domain)) echo "value=".$v_domain; ?>>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -109,17 +137,16 @@
<a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options</a> <a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options</a>
</td> </td>
</tr> </tr>
</table>
<table class="data-col2" width="600px" style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
<tr> <tr>
<td class="add-text" style="padding: 9px 0 0 0px;"> <td class="add-text" style="padding: 10 0 0 2px;">
<table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
<tr>
<td class="add-text" style="padding: 0 0 0 2px;">
Domain Aliases Domain Aliases
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<textarea size="20" class="add-textinput" name="v_aliases"><?php if (!empty($v_aliases)) echo $v_aliases; ?></textarea> <textarea size="20" class="add-textinput" name="v_aliases" id="v_aliases" ><?php if (!empty($v_aliases)) echo $v_aliases; ?></textarea>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -145,16 +172,6 @@
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
Error Logging
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="add-checkbox" name="v_elog" <?php if (!empty($v_elog)) echo "checked=yes" ?>>
</td>
</tr>
<tr> <tr>
<td class="add-text" style="padding: 10px 0 0 2px;"> <td class="add-text" style="padding: 10px 0 0 2px;">
Nginx Support Nginx Support
@ -162,7 +179,23 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" size="20" class="add-checkbox" name="v_nginx" <?php if (empty($v_nginx)) echo "checked=yes" ?>> <input type="checkbox" size="20" class="add-checkbox" name="v_nginx" <?php if ($v_nginx !== 'off') echo "checked=yes" ?> onclick="javascript:elementHideShow('nginxtable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if ($v_nginx == 'off') { echo 'none';} else {echo 'block';}?>;" id="nginxtable" >
<tr>
<td class="add-text" style="padding: 9px 0 0 0;">
Nginx Supported Extentions
</td>
</tr>
<tr>
<td>
<textarea size="20" class="add-textinput" name="v_nginx_ext"><?php if (!empty($v_nginx_ext)) { echo $v_nginx_ext;} else { echo 'jpg, jpeg, gif, png, ico, svg, css, zip, tgz, gz, rar, bz2, exe, pdf, doc, xls, ppt, txt, odt, ods, odp, odf, tar, bmp, rtf, js, mp3, avi, mpeg, flv, html, htm'; } ?></textarea>
</td>
</tr>
</table>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -172,21 +205,31 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" size="20" class="add-checkbox" name="v_ssl" <?php if (!empty($v_ssl)) echo "checked=yes" ?>> <input type="checkbox" size="20" class="add-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');">
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
SSL Certificate
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<textarea size="20" class="add-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea> <table style="display:<?php if (empty($v_ssl)) { echo 'none';} else {echo 'block';}?>;" id="ssltable">
<tr>
<td class="add-text" style="padding: 9px 0 0 0;">
SSL HomeDirectory
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="add-text" style="padding: 10px 0 0 2px;"> <td>
<select class="add-list" name="v_ssl_home">
<option value='same' <?php if ($v_ssl_home == 'same') echo "selected";?>>
public_html
</option>
<option value='single' <?php if ($v_ssl_home == 'single') echo "selected";?>>
public_shtml
</option>
</select>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
SSL Key SSL Key
</td> </td>
</tr> </tr>
@ -196,8 +239,18 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="add-text" style="padding: 10px 0 0 2px;"> <td class="add-text" style="padding: 10px 0 0 0;">
SSL Certificate Authority <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span> SSL Certificate
</td>
</tr>
<tr>
<td>
<textarea size="20" class="add-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
SSL Certificate Authority / Intermediate <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -205,6 +258,9 @@
<textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea> <textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea>
</td> </td>
</tr> </tr>
</table>
</td>
</tr>
<tr> <tr>
<td class="add-text" style="padding: 10px 0 0 2px;"> <td class="add-text" style="padding: 10px 0 0 2px;">
Web Statistics Web Statistics
@ -227,11 +283,93 @@
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
Web Statistic Authorization
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="add-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">
<tr>
<td class="add-text" style="padding: 9px 0 0 0;">
Web Statistics Username
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_stats_user" <?php if (!empty($v_stats_user)) echo "value=".$v_stats_user; ?>>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
Web Statistics Password <a href="javascript:WEBrandom();" class="genpass">generate</a>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
</td>
</tr>
</table> </table>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 24px 0 0 0;"> <td class="add-text" style="padding: 10px 0 0 2px;">
Additional FTP Account
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="add-checkbox" name="v_ftp" <?php if (!empty($v_ftp)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp">
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
FTP Username<br>
<span style="font-size: 10pt; color:#555;">Prefix <?php echo $user."_"; ?> will be automaticaly added to username</span>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
FTP Password <a href="javascript:FTPrandom();" class="genpass" >generate</a>
</td>
</tr>
<tr>
<td>
<input type="text" class="add-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
Send FTP credentials to email
</td>
</tr>
<tr>
<td>
<input type="text" class="add-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table class="data-col2" width="600px">
<tr>
<td style="padding: 33px 0 0 0;">
<input type="submit" name="ok" value="OK" class="button"> <input type="submit" name="ok" value="OK" class="button">
<input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>"> <input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>">
</td> </td>

View file

@ -28,6 +28,28 @@
<form id="vstobjects" name="v_edit_web" method="post"> <form id="vstobjects" name="v_edit_web" method="post">
<script language="javascript"> <script language="javascript">
function WEBrandom() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var webrandom = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
webrandom += chars.substring(rnum,rnum+1);
}
document.v_edit_web.v_stats_password.value = webrandom;
}
function FTPrandom() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var ftprandomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1);
}
document.v_edit_web.v_ftp_password.value = ftprandomstring;
}
function elementHideShow(elementToHideOrShow){ function elementHideShow(elementToHideOrShow){
var el = document.getElementById(elementToHideOrShow); var el = document.getElementById(elementToHideOrShow);
if (el.style.display == "block") { if (el.style.display == "block") {
@ -36,16 +58,6 @@
el.style.display = "block"; el.style.display = "block";
} }
} }
function randomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
document.getElementById('v_password').value = randomstring;
}
</script> </script>
<table class='data'> <table class='data'>
<tr class="data-add"> <tr class="data-add">
@ -125,16 +137,6 @@
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
Error Logging
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="add-checkbox" name="v_elog" <?php if ($v_elog == 'yes') echo "checked=yes" ?>>
</td>
</tr>
<tr> <tr>
<td class="add-text" style="padding: 10px 0 0 2px;"> <td class="add-text" style="padding: 10px 0 0 2px;">
Nginx Support Nginx Support
@ -149,7 +151,7 @@
<td> <td>
<table style="display:<?php if (empty($v_nginx)) { echo 'none';} else {echo 'block';}?> ;" id="nginxtable"> <table style="display:<?php if (empty($v_nginx)) { echo 'none';} else {echo 'block';}?> ;" id="nginxtable">
<tr> <tr>
<td class="add-text" style="padding: 9px 0 0 2px;"> <td class="add-text" style="padding: 9px 0 0 0;">
Nginx Supported Extentions Nginx Supported Extentions
</td> </td>
</tr> </tr>
@ -175,7 +177,7 @@
<td> <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="add-text" style="padding: 9px 0 0 2px;"> <td class="add-text" style="padding: 9px 0 0 0;">
SSL HomeDirectory SSL HomeDirectory
</td> </td>
</tr> </tr>
@ -224,8 +226,14 @@
</table> </table>
</td> </td>
</tr> </tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistics</td></tr> <tr>
<tr><td><select class="add-list" name="v_stats"> <td class="add-text" style="padding: 10px 0 0 2px;">
Web Statistics
</td>
</tr>
<tr>
<td>
<select class="add-list" name="v_stats">
<?php <?php
foreach ($stats as $key => $value) { foreach ($stats as $key => $value) {
$svalue = "'".$value."'"; $svalue = "'".$value."'";
@ -237,22 +245,108 @@
echo ">".$value."</option>\n"; echo ">".$value."</option>\n";
} }
?> ?>
</select></td></tr> </select>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistic Authorization</td></tr> </td>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"> </tr> </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"><tr> <tr>
<tr><td class="add-text" style="padding: 9px 0 0 2px;">Web Statistics Username</td></tr> <td class="add-text" style="padding: 10px 0 0 2px;">
<tr><td><input type="text" size="20" class="add-input" name="v_stats_user" <?php if (!empty($v_stats_user)) echo "value=".$v_stats_user; ?>></tr> Web Statistic Authorization
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistics Password <a href="javascript:randomString();" class="genpass">generate</a></td></tr> </td>
<tr><td><input type="text" size="20" class="add-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password"></tr> </tr>
</td></tr></tr></table> <tr>
<tr><td style="padding: 24px 0 0 0;"> <td>
<input type="submit" class="button" name="save" value="Save"></form> <input type="checkbox" size="20" class="add-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">
<tr>
<td class="add-text" style="padding: 9px 0 0 2px;">
Web Statistics Username
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_stats_user" <?php if (!empty($v_stats_user)) echo "value=".$v_stats_user; ?>>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
Web Statistics Password <a href="javascript:WEBrandom();" class="genpass">generate</a>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
Additional FTP Account
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="add-checkbox" name="v_ftp" <?php if (!empty($v_ftp_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp">
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
FTP Username
<?php if (empty($v_ftp_user)) echo '<br><span style="font-size: 10pt; color:#555;">Prefix '.$user.'_ will be automaticaly added to username</span>' ?>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
FTP Password <a href="javascript:FTPrandom();" class="genpass" >generate</a>
</td>
</tr>
<tr>
<td>
<input type="text" class="add-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td>
</tr>
<?php
if (empty($v_ftp_user)) {
echo '';
?>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
Send FTP credentials to email
</td>
</tr>
<tr>
<td>
<input type="text" class="add-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
<tr>
<td style="padding: 24px 0 0 0;">
<input type="submit" class="button" name="save" value="Save">
<input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>"> <input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>">
</td></tr> </td>
</form> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</form>

View file

@ -50,6 +50,18 @@
} else { } else {
$ssl_home = ''; $ssl_home = '';
} }
$web_stats='no';
if (!empty($data[$key]['STATS'])) {
$web_stats=$data[$key]['STATS'];
}
$ftp_user='no';
if (!empty($data[$key]['FTP_USER'])) {
$ftp_user=$data[$key]['FTP_USER'];
}
$nginx_support='no';
if (!empty($data[$key]['NGINX'])) {
$nginx_support='yes';
}
if (strlen($data[$key]['NGINX_EXT']) > 16 ) { if (strlen($data[$key]['NGINX_EXT']) > 16 ) {
$nginx_ext_title = str_replace(',', ', ', $data[$key]['NGINX_EXT']); $nginx_ext_title = str_replace(',', ', ', $data[$key]['NGINX_EXT']);
$nginx_ext = substr($data[$key]['NGINX_EXT'], 0, 16); $nginx_ext = substr($data[$key]['NGINX_EXT'], 0, 16);
@ -136,30 +148,10 @@
</tr> </tr>
</table> </table>
</td> </td>
<td style="vertical-align:top;" width="250"> <td style="vertical-align:top;" width="300">
<table> <table>
<tr> <tr>
<td class="counter-name">CGI Support:</td> <td class="counter-name" width="110">SSL Support:</td>
<td class="counter-value"><?php echo $data[$key]['CGI'] ?></td>
</tr>
<tr>
<td class="counter-name">Error Log:</td>
<td class="counter-value"><?php echo $data[$key]['ELOG'] ?></td>
</tr>
<tr>
<td class="counter-name">Web Statistics:</td>
<td class="counter-value"><?php echo $data[$key]['STATS'] ?></td>
</tr>
<tr>
<td class="counter-name">Statistics Auth:</td>
<td class="counter-value"><?php echo $data[$key]['STATS_AUTH'] ?></td>
</tr>
</table>
</td>
<td rowspan=4 style="vertical-align:top;" width="300">
<table width="300">
<tr>
<td class="counter-name" width="40%">SSL Support:</td>
<td class="counter-value"><?php echo $data[$key]['SSL'] ?></td> <td class="counter-value"><?php echo $data[$key]['SSL'] ?></td>
</tr> </tr>
<tr> <tr>
@ -167,8 +159,8 @@
<td class="counter-value"><?php echo $ssl_home ?></td> <td class="counter-value"><?php echo $ssl_home ?></td>
</tr> </tr>
<tr> <tr>
<td class="counter-name">Nginx Template:</td> <td class="counter-name">Nginx Support:</td>
<td class="counter-value"><?php echo $data[$key]['NGINX'] ?></td> <td class="counter-value"><?php echo $nginx_support ?></td>
</tr> </tr>
<tr> <tr>
<td class="counter-name">Nginx Extentions:</td> <td class="counter-name">Nginx Extentions:</td>
@ -176,6 +168,18 @@
</tr> </tr>
</table> </table>
</td> </td>
<td rowspan=4 style="vertical-align:top;" width="240">
<table>
<tr>
<td class="counter-name">Web Statistics: </td>
<td class="counter-value"> <?php echo $web_stats ?></td>
</tr>
<tr>
<td class="counter-name"> Additional FTP:</td>
<td class="counter-value"> <?php echo $ftp_user ?></td>
</tr>
</table>
</td>
</tr> </tr>
</table> </table>
</td> </td>

View file

@ -27,6 +27,48 @@
</table> </table>
<form id="vstobjects" name="v_add_web" method="post"> <form id="vstobjects" name="v_add_web" method="post">
<script type="text/javascript">
$(function() {
$("#v_domain").change(function() {
var prefix = 'www.';
document.getElementById('v_aliases').value = prefix + document.getElementById('v_domain').value;
});
});
function WEBrandom() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var webrandom = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
webrandom += chars.substring(rnum,rnum+1);
}
document.v_add_web.v_stats_password.value = webrandom;
}
function FTPrandom() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var ftprandomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
ftprandomstring += chars.substring(rnum,rnum+1);
}
document.v_add_web.v_ftp_password.value = ftprandomstring;
document.v_add_web.v_stats_password.value = randomstring;
}
function randomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
document.v_add_web.v_ftp_password.value = randomstring;
}
</script>
<script language="javascript"> <script language="javascript">
function elementHideShow(elementToHideOrShow){ function elementHideShow(elementToHideOrShow){
var el = document.getElementById(elementToHideOrShow); var el = document.getElementById(elementToHideOrShow);
@ -61,7 +103,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="text" size="20" class="add-input" name="v_domain" <?php if (!empty($v_domain)) echo "value=".$v_domain; ?>> <input type="text" size="20" class="add-input" name="v_domain" id="v_domain" <?php if (!empty($v_domain)) echo "value=".$v_domain; ?>>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -109,27 +151,16 @@
<a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options</a> <a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options</a>
</td> </td>
</tr> </tr>
</table>
<table class="data-col2" width="600px" style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
<tr> <tr>
<td class="add-text" style="padding: 9px 0 0 0px;"> <td class="add-text" style="padding: 10 0 0 2px;">
<table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
<tr>
<td class="add-text" style="padding: 0 0 0 2px;">
Domain Aliases Domain Aliases
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<textarea size="20" class="add-textinput" name="v_aliases"><?php if (!empty($v_aliases)) echo $v_aliases; ?></textarea> <textarea size="20" class="add-textinput" name="v_aliases" id="v_aliases" ><?php if (!empty($v_aliases)) echo $v_aliases; ?></textarea>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
Error Logging
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="add-checkbox" name="v_elog" <?php if (!empty($v_elog)) echo "checked=yes" ?>>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -139,7 +170,23 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" size="20" class="add-checkbox" name="v_nginx" <?php if (empty($v_nginx)) echo "checked=yes" ?>> <input type="checkbox" size="20" class="add-checkbox" name="v_nginx" <?php if ($v_nginx !== 'off') echo "checked=yes" ?> onclick="javascript:elementHideShow('nginxtable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if ($v_nginx == 'off') { echo 'none';} else {echo 'block';}?>;" id="nginxtable" >
<tr>
<td class="add-text" style="padding: 9px 0 0 0;">
Nginx Supported Extentions
</td>
</tr>
<tr>
<td>
<textarea size="20" class="add-textinput" name="v_nginx_ext"><?php if (!empty($v_nginx_ext)) { echo $v_nginx_ext;} else { echo 'jpg, jpeg, gif, png, ico, svg, css, zip, tgz, gz, rar, bz2, exe, pdf, doc, xls, ppt, txt, odt, ods, odp, odf, tar, bmp, rtf, js, mp3, avi, mpeg, flv, html, htm'; } ?></textarea>
</td>
</tr>
</table>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -149,21 +196,31 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" size="20" class="add-checkbox" name="v_ssl" <?php if (!empty($v_ssl)) echo "checked=yes" ?>> <input type="checkbox" size="20" class="add-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');">
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
SSL Certificate
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
<textarea size="20" class="add-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea> <table style="display:<?php if (empty($v_ssl)) { echo 'none';} else {echo 'block';}?>;" id="ssltable">
<tr>
<td class="add-text" style="padding: 9px 0 0 0;">
SSL HomeDirectory
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="add-text" style="padding: 10px 0 0 2px;"> <td>
<select class="add-list" name="v_ssl_home">
<option value='same' <?php if ($v_ssl_home == 'same') echo "selected";?>>
public_html
</option>
<option value='single' <?php if ($v_ssl_home == 'single') echo "selected";?>>
public_shtml
</option>
</select>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
SSL Key SSL Key
</td> </td>
</tr> </tr>
@ -173,8 +230,18 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="add-text" style="padding: 10px 0 0 2px;"> <td class="add-text" style="padding: 10px 0 0 0;">
SSL Certificate Authority <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span> SSL Certificate
</td>
</tr>
<tr>
<td>
<textarea size="20" class="add-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
SSL Certificate Authority / Intermediate <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -182,6 +249,9 @@
<textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea> <textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea>
</td> </td>
</tr> </tr>
</table>
</td>
</tr>
<tr> <tr>
<td class="add-text" style="padding: 10px 0 0 2px;"> <td class="add-text" style="padding: 10px 0 0 2px;">
Web Statistics Web Statistics
@ -204,11 +274,93 @@
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 2px;">
Web Statistic Authorization
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="add-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">
<tr>
<td class="add-text" style="padding: 9px 0 0 0;">
Web Statistics Username
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_stats_user" <?php if (!empty($v_stats_user)) echo "value=".$v_stats_user; ?>>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
Web Statistics Password <a href="javascript:WEBrandom();" class="genpass">generate</a>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password">
</td>
</tr>
</table> </table>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="padding: 24px 0 0 0;"> <td class="add-text" style="padding: 10px 0 0 2px;">
Additional FTP Account
</td>
</tr>
<tr>
<td>
<input type="checkbox" size="20" class="add-checkbox" name="v_ftp" <?php if (!empty($v_ftp)) echo "checked=yes" ?> onclick="javascript:elementHideShow('ftptable');">
</td>
</tr>
<tr>
<td>
<table style="display:<?php if (empty($v_ftp_user)) { echo 'none';} else {echo 'block';}?> ;" id="ftptable" name="v_add_domain_ftp">
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
FTP Username<br>
<span style="font-size: 10pt; color:#555;">Prefix <?php echo $user."_"; ?> will be automaticaly added to username</span>
</td>
</tr>
<tr>
<td>
<input type="text" size="20" class="add-input" name="v_ftp_user" <?php if (!empty($v_ftp_user)) echo "value=".$v_ftp_user; ?>>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
FTP Password <a href="javascript:FTPrandom();" class="genpass" >generate</a>
</td>
</tr>
<tr>
<td>
<input type="text" class="add-input" name="v_ftp_password" <?php if (!empty($v_ftp_password)) echo "value=".$v_ftp_password; ?>>
</td>
</tr>
<tr>
<td class="add-text" style="padding: 10px 0 0 0;">
Send FTP credentials to email
</td>
</tr>
<tr>
<td>
<input type="text" class="add-input" name="v_ftp_email" <?php if (!empty($v_ftp_email)) echo "value=".$v_ftp_email; ?>>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table class="data-col2" width="600px">
<tr>
<td style="padding: 33px 0 0 0;">
<input type="submit" name="ok" value="OK" class="button"> <input type="submit" name="ok" value="OK" class="button">
<input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>"> <input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>">
</td> </td>