Просмотр исходного кода

added additional web ftp accounts

Serghey Rodin 13 лет назад
Родитель
Сommit
7c3419b012

+ 12 - 11
bin/v_add_web_domain

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

+ 71 - 0
bin/v_add_web_domain_ftp

@@ -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 - 0
bin/v_change_web_domain_ftp

@@ -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

+ 5 - 0
bin/v_delete_web_domain

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

+ 58 - 0
bin/v_delete_web_domain_ftp

@@ -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

+ 1 - 1
bin/v_list_web_domain

@@ -76,7 +76,7 @@ conf=$USER_DATA/web.conf
 
 # Defining fileds to select
 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
 case $format in 

+ 2 - 2
bin/v_list_web_domains

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

+ 30 - 6
bin/v_rebuild_web_domains

@@ -77,12 +77,11 @@ for domain in $(shell_list) ; do
           /var/log/httpd/domains/$domain.error.log
 
     chmod 551 $HOMEDIR/$user/web/$domain
-    chmod 751 $HOMEDIR/$user/web/$domain/private
-    chmod 751 $HOMEDIR/$user/web/$domain/cgi-bin
-    chmod 751 $HOMEDIR/$user/web/$domain/public_html
-    chmod 751 $HOMEDIR/$user/web/$domain/public_shtml
-    chmod 751 $HOMEDIR/$user/web/$domain/document_errors
-    chmod -f -R 775 $HOMEDIR/$user/web/$domain/document_errors/*
+    chmod 771 $HOMEDIR/$user/web/$domain/private
+    chmod 771 $HOMEDIR/$user/web/$domain/cgi-bin
+    chmod 771 $HOMEDIR/$user/web/$domain/public_html
+    chmod 771 $HOMEDIR/$user/web/$domain/public_shtml
+    chmod 771 $HOMEDIR/$user/web/$domain/document_errors
     chmod 551 $HOMEDIR/$user/web/$domain/stats
     chmod 551 $HOMEDIR/$user/web/$domain/logs
     chmod 640 /var/log/httpd/domains/$domain.*
@@ -208,6 +207,31 @@ for domain in $(shell_list) ; do
         suspended_web=$((suspended_web + 1))
     fi
     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
 
 # Renaming tmp config

+ 2 - 0
func/main.sh

@@ -726,6 +726,8 @@ validate_format(){
             extentions)     validate_format_common "$arg" 'extentions' ;;
             fname)          validate_format_username "$arg" "$arg_name" ;;
             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" ;;
             hour)           validate_format_mhdmw "$arg" $arg_name ;;
             id)             validate_format_int "$arg" ;;

+ 111 - 26
web/add/web/index.php

@@ -18,7 +18,20 @@ top_panel($user,$TAB);
         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_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
         $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_key = $_POST['v_ssl_key'];
         $v_ssl_ca = $_POST['v_ssl_ca'];
+        $v_ssl_home = $data[$v_domain]['SSL_HOME'];
         $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
         if (!empty($errors[0])) {
@@ -50,7 +80,9 @@ top_panel($user,$TAB);
                 }
             }
             $_SESSION['error_msg'] = "Error: field ".$error_msg." can not be blank.";
-        } else {
+        }
+
+        if (empty($_SESSION['error_msg'])) {
             // Add WEB
             exec (VESTA_CMD."v_add_web_domain ".$user." ".$v_domain." ".$v_ip." ".$v_template." 'no'", $output, $return_var);
             if ($return_var != 0) {
@@ -90,43 +122,49 @@ top_panel($user,$TAB);
                 $valiases = trim($valiases);
                 $aliases = explode(" ", $valiases);
                 foreach ($aliases as $alias) {
-                    $alias = escapeshellarg($alias);
-                    if (empty($_SESSION['error_msg'])) {
-                        exec (VESTA_CMD."v_add_web_domain_alias ".$user." ".$v_domain." ".$alias." '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);
-                    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);
-                        if ($return_var != 0) {
-                            $error = implode('<br>', $output);
-                            if (empty($error)) $error = 'Error: vesta did not return any output.';
-                            $_SESSION['error_msg'] = $error;
+                    if ($alias == 'www.'.$_POST['v_domain']) {
+                        $www_alias = 'yes';
+                    } else {
+                        $alias = escapeshellarg($alias);
+                        if (empty($_SESSION['error_msg'])) {
+                            exec (VESTA_CMD."v_add_web_domain_alias ".$user." ".$v_domain." ".$alias." '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);
+                        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);
+                            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);
+                        }
                     }
                 }
             }
-
-            // Add ErrorLog
-            if ((!empty($_POST['v_elog'])) && (empty($_SESSION['error_msg']))) {
-                exec (VESTA_CMD."v_add_web_domain_elog ".$user." ".$v_domain." 'no'", $output, $return_var);
+            if ((empty($www_alias)) && (empty($_SESSION['error_msg']))) {
+                $alias =  preg_replace("/^www./i", "", $_POST['v_domain']);
+                $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) {
                     $error = implode('<br>', $output);
                     if (empty($error)) $error = 'Error: vesta did not return any output.';
                     $_SESSION['error_msg'] = $error;
                 }
-                unset($output);
             }
 
+
             // Add Nginx
             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'";
-                exec (VESTA_CMD."v_add_web_domain_nginx ".$user." ".$v_domain." 'default' ".$nginx_ext." 'no'", $output, $return_var);
+                $ext = str_replace(' ', '', $v_nginx_ext);
+                $ext = escapeshellarg($ext);
+                exec (VESTA_CMD."v_add_web_domain_nginx ".$user." ".$v_domain." 'default' ".$ext." 'no'", $output, $return_var);
                 if ($return_var != 0) {
                     $error = implode('<br>', $output);
                     if (empty($error)) $error = 'Error: vesta did not return any output.';
@@ -161,7 +199,8 @@ top_panel($user,$TAB);
                     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) {
                     $error = implode('<br>', $output);
                     if (empty($error)) $error = 'Error: vesta did not return any output.';
@@ -180,6 +219,52 @@ top_panel($user,$TAB);
                     $_SESSION['error_msg'] = $error;
                 }
                 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']))) {

+ 11 - 6
web/edit/user/index.php

@@ -123,12 +123,17 @@ if ($_SESSION['user'] == 'admin') {
 
         // Change contact email
         if (($v_email != $_POST['v_email']) && (empty($_SESSION['error_msg']))) {
-            $v_email = escapeshellarg($_POST['v_email']);
-            exec (VESTA_CMD."v_change_user_contact ".$v_username." ".$v_email, $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;
+            // 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']);
+                exec (VESTA_CMD."v_change_user_contact ".$v_username." ".$v_email, $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);
         }

+ 87 - 24
web/edit/web/index.php

@@ -61,6 +61,8 @@ top_panel($user,$TAB);
         $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';
@@ -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
         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);
@@ -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
         if (!empty($restart_web) && (empty($_SESSION['error_msg']))) {

+ 194 - 56
web/templates/admin/add_web.html

@@ -27,7 +27,35 @@
                     </table>
 
                     <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){
                                 var el = document.getElementById(elementToHideOrShow);
                                 if (el.style.display == "block") {
@@ -61,7 +89,7 @@
                                     </tr>
                                     <tr>
                                         <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>
                                     </tr>
                                     <tr>
@@ -109,129 +137,239 @@
                                             <a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options</a>
                                         </td>
                                     </tr>
+                                </table>
+                                <table class="data-col2" width="600px" style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
+                                    <tr>
+                                        <td class="add-text" style="padding: 10 0 0 2px;">
+                                            Domain Aliases
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td>
+                                            <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;">
+                                            Apache Template
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td>
+                                            <select class="add-list" name="v_template">
+                                                <?php
+                                                    foreach ($templates as $key => $value) {
+                                                        echo "\t\t\t\t<option value=\"".$value."\"";
+                                                        if ((!empty($v_template)) && ( $value == $_POST['v_template'])){
+                                                            echo ' selected' ;
+                                                        }
+                                                        if ((empty($v_template)) && ( $value == $template)){
+                                                            echo ' selected' ;
+                                                        }
+                                                        echo "> ".$value." </option>\n";
+                                                    }
+                                                ?>
+                                            </select>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td class="add-text" style="padding: 10px 0 0 2px;">
+                                            Nginx Support
+                                        </td>
+                                    </tr>
                                     <tr>
-                                        <td class="add-text" style="padding: 9px 0 0 0px;">
-                                            <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
+                                        <td>
+                                            <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: 0 0 0 2px;">
-                                                        Domain Aliases
+                                                    <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_aliases"><?php if (!empty($v_aliases)) echo $v_aliases;  ?></textarea>
+                                                        <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>
+                                    </tr>
+                                    <tr>
+                                        <td class="add-text" style="padding: 10px 0 0 2px;">
+                                            SSL Support
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td>
+                                            <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>
+                                            <table style="display:<?php if (empty($v_ssl)) { echo 'none';} else {echo 'block';}?>;" id="ssltable">
                                                 <tr>
-                                                    <td class="add-text" style="padding: 10px 0 0 2px;">
-                                                        Apache Template
+                                                    <td class="add-text" style="padding: 9px 0 0 0;">
+                                                        SSL HomeDirectory
                                                     </td>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <select class="add-list" name="v_template">
-                                                            <?php
-                                                                foreach ($templates as $key => $value) {
-                                                                    echo "\t\t\t\t<option value=\"".$value."\"";
-                                                                    if ((!empty($v_template)) && ( $value == $_POST['v_template'])){
-                                                                        echo ' selected' ;
-                                                                    }
-                                                                    if ((empty($v_template)) && ( $value == $template)){
-                                                                        echo ' selected' ;
-                                                                    }
-                                                                    echo "> ".$value." </option>\n";
-                                                                }
-                                                            ?>
+                                                        <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 2px;">
-                                                        Error Logging
+                                                    <td class="add-text" style="padding: 10px 0 0 0;">
+                                                        SSL Key
                                                     </td>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <input type="checkbox" size="20" class="add-checkbox" name="v_elog" <?php if (!empty($v_elog)) echo "checked=yes" ?>>
+                                                        <textarea size="20" class="add-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key; ?></textarea>
                                                     </td>
                                                 </tr>
                                                 <tr>
-                                                    <td class="add-text" style="padding: 10px 0 0 2px;">
-                                                        Nginx Support
+                                                    <td class="add-text" style="padding: 10px 0 0 0;">
+                                                        SSL Certificate
                                                     </td>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <input type="checkbox" size="20" class="add-checkbox" name="v_nginx" <?php if (empty($v_nginx)) echo "checked=yes" ?>>
+                                                        <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 2px;">
-                                                        SSL Support
+                                                    <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>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <input type="checkbox" size="20" class="add-checkbox" name="v_ssl" <?php if (!empty($v_ssl)) echo "checked=yes" ?>>
+                                                        <textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea>
                                                     </td>
                                                 </tr>
+                                            </table>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td class="add-text" style="padding: 10px 0 0 2px;">
+                                            Web Statistics
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td>
+                                            <select class="add-list" name="v_stats">
+                                                <?php
+                                                    foreach ($stats as $key => $value) {
+                                                        $svalue = "'".$value."'";
+                                                        echo "\t\t\t\t<option value=\"".$value."\"";
+                                                        if (empty($v_stats)) $v_stats = 'none';
+                                                        if (( $value == $v_stats ) || ($svalue == $v_stats )){
+                                                            echo ' selected' ;
+                                                        }
+                                                        echo ">".$value."</option>\n";
+                                                    }
+                                                ?> 
+                                            </select>
+                                        </td>
+                                    </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: 10px 0 0 2px;">
-                                                        SSL Certificate
+                                                    <td class="add-text" style="padding: 9px 0 0 0;">
+                                                        Web Statistics Username
                                                     </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>
+                                                        <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;">
-                                                        SSL Key
+                                                    <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>
-                                                        <textarea size="20" class="add-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key;  ?></textarea>
+                                                        <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)) 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 2px;">
-                                                        SSL Certificate Authority <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span>
+                                                    <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>
-                                                        <textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca;  ?></textarea>
+                                                        <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 2px;">
-                                                        Web Statistics
+                                                    <td class="add-text" style="padding: 10px 0 0 0;">
+                                                        FTP Password <a href="javascript:FTPrandom();" class="genpass" >generate</a>
                                                     </td>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <select class="add-list" name="v_stats">
-                                                            <?php
-                                                                foreach ($stats as $key => $value) {
-                                                                    $svalue = "'".$value."'";
-                                                                    echo "\t\t\t\t<option value=\"".$value."\"";
-                                                                    if (empty($v_stats)) $v_stats = 'none';
-                                                                    if (( $value == $v_stats ) || ($svalue == $v_stats )){
-                                                                        echo ' selected' ;
-                                                                    }
-                                                                    echo ">".$value."</option>\n";
-                                                                }
-                                                            ?> 
-                                                        </select>
+                                                        <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: 24px 0 0 0;">
+                                        <td style="padding: 33px 0 0 0;">
                                             <input type="submit" name="ok" value="OK" class="button">
                                             <input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>">
                                         </td>

+ 145 - 51
web/templates/admin/edit_web.html

@@ -28,6 +28,28 @@
 
                     <form id="vstobjects" name="v_edit_web" method="post">
                         <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){
                                 var el = document.getElementById(elementToHideOrShow);
                                 if (el.style.display == "block") {
@@ -36,16 +58,6 @@
                                     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>
                         <table class='data'>
                             <tr class="data-add">
@@ -125,16 +137,6 @@
                                                 </select>
                                             </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 ($v_elog == 'yes') echo "checked=yes" ?>>
-                                            </td>
-                                        </tr>
                                         <tr>
                                             <td class="add-text" style="padding: 10px 0 0 2px;">
                                                 Nginx Support
@@ -149,7 +151,7 @@
                                             <td>
                                                 <table style="display:<?php if (empty($v_nginx)) { echo 'none';} else {echo 'block';}?> ;" id="nginxtable">
                                                     <tr>
-                                                        <td class="add-text" style="padding: 9px 0 0 2px;">
+                                                        <td class="add-text" style="padding: 9px 0 0 0;">
                                                             Nginx Supported Extentions
                                                         </td>
                                                     </tr>
@@ -175,7 +177,7 @@
                                             <td>
                                                 <table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable">
                                                     <tr>
-                                                        <td class="add-text" style="padding: 9px 0 0 2px;">
+                                                        <td class="add-text" style="padding: 9px 0 0 0;">
                                                             SSL HomeDirectory
                                                         </td>
                                                     </tr>
@@ -224,35 +226,127 @@
                                                 </table>
                                             </td>
                                         </tr>
-                                        <tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistics</td></tr>
-                                        <tr><td><select class="add-list" name="v_stats">
-                                        <?php
-                                            foreach ($stats as $key => $value) {
-                                                $svalue = "'".$value."'";
-                                                echo "\t\t\t\t<option value=\"".$value."\"";
-                                                if (empty($v_stats)) $v_stats = 'none';
-                                                if (( $value == $v_stats ) || ($svalue == $v_stats )){
-                                                    echo ' selected' ;
-                                                }
-                                                echo ">".$value."</option>\n";
-                                            }
-                                        ?>
-                                        </select></td></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');"> </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><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;  ?>></tr>
-                                            <tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistics Password <a href="javascript:randomString();" 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"></tr>
-                                        </td></tr></tr></table>
-                                        <tr><td style="padding: 24px 0 0 0;">
-                                            <input type="submit" class="button" name="save" value="Save"></form>
-                                            <input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>">
-                                        </td></tr>
-                                        </form>
+                                        <tr>
+                                            <td class="add-text" style="padding: 10px 0 0 2px;">
+                                                Web Statistics
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>
+                                                <select class="add-list" name="v_stats">
+                                                    <?php
+                                                        foreach ($stats as $key => $value) {
+                                                            $svalue = "'".$value."'";
+                                                            echo "\t\t\t\t<option value=\"".$value."\"";
+                                                            if (empty($v_stats)) $v_stats = 'none';
+                                                            if (( $value == $v_stats ) || ($svalue == $v_stats )){
+                                                                echo ' selected' ;
+                                                            }
+        	                                            echo ">".$value."</option>\n";
+                                                        }
+        	                                    ?> 
+                                                </select>
+                                            </td>
+                                        </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 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 ?>">
+                                            </td>
+                                        </tr>
                                     </table>
                                 </td>
                             </tr>
-                            </table>
-                                                                                
+                        </table>
+                    </form>
+                                            

+ 28 - 24
web/templates/admin/list_web.html

@@ -50,6 +50,18 @@
                                     } else {
                                         $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 ) {
                                         $nginx_ext_title = str_replace(',', ', ', $data[$key]['NGINX_EXT']);
                                         $nginx_ext = substr($data[$key]['NGINX_EXT'], 0, 16);
@@ -136,30 +148,10 @@
                                                     </tr>
                                                 </table>
                                             </td>
-                                            <td style="vertical-align:top;" width="250">
+                                            <td style="vertical-align:top;" width="300">
                                                 <table>
                                                     <tr>
-                                                        <td class="counter-name">CGI 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-name" width="110">SSL Support:</td>
                                                         <td class="counter-value"><?php echo $data[$key]['SSL'] ?></td>
                                                     </tr>
                                                     <tr>
@@ -167,8 +159,8 @@
                                                         <td class="counter-value"><?php echo $ssl_home ?></td>
                                                     </tr>
                                                     <tr>
-                                                        <td class="counter-name">Nginx Template:</td>
-                                                        <td class="counter-value"><?php echo $data[$key]['NGINX'] ?></td>
+                                                        <td class="counter-name">Nginx Support:</td>
+                                                        <td class="counter-value"><?php echo $nginx_support ?></td>
                                                     </tr>
                                                     <tr>
                                                         <td class="counter-name">Nginx Extentions:</td>
@@ -176,6 +168,18 @@
                                                     </tr>
                                                 </table>
                                             </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>
                                     </table>
                                 </td>

+ 192 - 40
web/templates/user/add_web.html

@@ -27,6 +27,48 @@
                     </table>
 
                     <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">
                             function elementHideShow(elementToHideOrShow){
                                 var el = document.getElementById(elementToHideOrShow);
@@ -61,7 +103,7 @@
                                     </tr>
                                     <tr>
                                         <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>
                                     </tr>
                                     <tr>
@@ -109,106 +151,216 @@
                                             <a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options</a>
                                         </td>
                                     </tr>
+                                </table>
+                                <table class="data-col2" width="600px" style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
+                                    <tr>
+                                        <td class="add-text" style="padding: 10 0 0 2px;">
+                                            Domain Aliases
+                                        </td>
+                                    </tr>
                                     <tr>
-                                        <td class="add-text" style="padding: 9px 0 0 0px;">
-                                            <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
+                                        <td>
+                                            <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;">
+                                            Nginx Support
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td>
+                                            <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: 0 0 0 2px;">
-                                                        Domain Aliases
+                                                    <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_aliases"><?php if (!empty($v_aliases)) echo $v_aliases;  ?></textarea>
+                                                        <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>
+                                    </tr>
+                                    <tr>
+                                        <td class="add-text" style="padding: 10px 0 0 2px;">
+                                            SSL Support
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td>
+                                            <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>
+                                            <table style="display:<?php if (empty($v_ssl)) { echo 'none';} else {echo 'block';}?>;" id="ssltable">
                                                 <tr>
-                                                    <td class="add-text" style="padding: 10px 0 0 2px;">
-                                                        Error Logging
+                                                    <td class="add-text" style="padding: 9px 0 0 0;">
+                                                        SSL HomeDirectory
                                                     </td>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <input type="checkbox" size="20" class="add-checkbox" name="v_elog" <?php if (!empty($v_elog)) echo "checked=yes" ?>>
+                                                        <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 2px;">
-                                                        Nginx Support
+                                                    <td class="add-text" style="padding: 10px 0 0 0;">
+                                                        SSL Key
                                                     </td>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <input type="checkbox" size="20" class="add-checkbox" name="v_nginx" <?php if (empty($v_nginx)) echo "checked=yes" ?>>
+                                                        <textarea size="20" class="add-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key; ?></textarea>
                                                     </td>
                                                 </tr>
                                                 <tr>
-                                                    <td class="add-text" style="padding: 10px 0 0 2px;">
-                                                        SSL Support
+                                                    <td class="add-text" style="padding: 10px 0 0 0;">
+                                                        SSL Certificate
                                                     </td>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <input type="checkbox" size="20" class="add-checkbox" name="v_ssl" <?php if (!empty($v_ssl)) echo "checked=yes" ?>>
+                                                        <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 2px;">
-                                                        SSL Certificate
+                                                    <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>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <textarea size="20" class="add-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt;  ?></textarea>
+                                                        <textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea>
                                                     </td>
                                                 </tr>
+                                            </table>
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td class="add-text" style="padding: 10px 0 0 2px;">
+                                            Web Statistics
+                                        </td>
+                                    </tr>
+                                    <tr>
+                                        <td>
+                                            <select class="add-list" name="v_stats">
+                                                <?php
+                                                    foreach ($stats as $key => $value) {
+                                                        $svalue = "'".$value."'";
+                                                        echo "\t\t\t\t<option value=\"".$value."\"";
+                                                        if (empty($v_stats)) $v_stats = 'none';
+                                                        if (( $value == $v_stats ) || ($svalue == $v_stats )){
+                                                            echo ' selected' ;
+                                                        }
+                                                        echo ">".$value."</option>\n";
+                                                    }
+                                                ?> 
+                                            </select>
+                                        </td>
+                                    </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: 10px 0 0 2px;">
-                                                        SSL Key
+                                                    <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>
-                                                        <textarea size="20" class="add-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key;  ?></textarea>
+                                                        <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)) 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 2px;">
-                                                        SSL Certificate Authority <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span>
+                                                    <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>
-                                                        <textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca;  ?></textarea>
+                                                        <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 2px;">
-                                                        Web Statistics
+                                                    <td class="add-text" style="padding: 10px 0 0 0;">
+                                                        FTP Password <a href="javascript:FTPrandom();" class="genpass" >generate</a>
                                                     </td>
                                                 </tr>
                                                 <tr>
                                                     <td>
-                                                        <select class="add-list" name="v_stats">
-                                                            <?php
-                                                                foreach ($stats as $key => $value) {
-                                                                    $svalue = "'".$value."'";
-                                                                    echo "\t\t\t\t<option value=\"".$value."\"";
-                                                                    if (empty($v_stats)) $v_stats = 'none';
-                                                                    if (( $value == $v_stats ) || ($svalue == $v_stats )){
-                                                                        echo ' selected' ;
-                                                                    }
-                                                                    echo ">".$value."</option>\n";
-                                                                }
-                                                            ?> 
-                                                        </select>
+                                                        <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: 24px 0 0 0;">
+                                        <td style="padding: 33px 0 0 0;">
                                             <input type="submit" name="ok" value="OK" class="button">
                                             <input type="button" class="button" value="Cancel" onclick="<?php echo $back ?>">
                                         </td>