Răsfoiți Sursa

Merge branch 'master' of github.com:serghey-rodin/vesta

Malishev Dmitry 11 ani în urmă
părinte
comite
f871fafa12

+ 15 - 20
bin/v-backup-user

@@ -536,11 +536,8 @@ TIME=$(date +%T)
 
 # Defining local storage function
 local_backup(){
-    # Removing dublicate for this day
-    if [ -e "$BACKUP/$user.$DATE.tar" ]; then
-        deprecated="$DATE"
-        rm -f $BACKUP/$user.$DATE.tar
-    fi
+
+    rm -f $BACKUP/$user.$DATE.tar
 
     # Checking retention
     backup_list=$(ls -lrt $BACKUP/ | awk '{print $9}' |grep "^$user\.")
@@ -549,10 +546,9 @@ local_backup(){
         backups_rm_number=$((backups_count - BACKUPS))
         (( ++backups_rm_number))
 
+        # Removing old backup
         for backup in $(echo "$backup_list" | head -n $backups_rm_number); do
-            # Removing old backup
             backup_date=$(echo $backup | sed -e "s/$user.//" -e "s/.tar$//")
-            deprecated="$deprecated $backup_date"
             echo -e "$(date "+%F %T") Roated: $backup_date"
             msg="$msg\n$(date "+%F %T") Rotated: $backup_date"
             rm -f $BACKUP/$backup
@@ -672,7 +668,6 @@ ftp_backup() {
         backups_rm_number=$((backups_count - BACKUPS + 1))
         for backup in $(echo "$backup_list" | head -n $backups_rm_number); do 
             backup_date=$(echo $backup | sed -e "s/$user.//" -e "s/.tar$//")
-            deprecated="$deprecated $backup"
             echo -e "$(date "+%F %T") Roated ftp backup: $backup_date"
             msg="$msg\n$(date "+%F %T") Roated ftp backup: $backup_date"
             ftpc "cd $BPATH" "delete $backup"
@@ -732,7 +727,7 @@ expect -f "-" <<EOF "$@"
                     set rc $OK
                 }
             }
-            exp_continue    
+            exp_continue
         }
 
         timeout {
@@ -745,7 +740,7 @@ expect -f "-" <<EOF "$@"
         puts "\$output"
     }
 
-    exit \$rc       
+    exit \$rc
 EOF
 }
 
@@ -813,7 +808,7 @@ sftp_backup() {
         exit "$rc"
     fi
     echo -e "$(date "+%F %T") Connection established"
-    
+
     # Checking retention
     echo -e "$(date "+%F %T") Checking retention ..."
     backup_list=$(sftpc "cd $BPATH" "ls -l" |awk '{print $9}' |grep "^$user\.")
@@ -857,7 +852,6 @@ for backup_type in $(echo -e "${BACKUP_SYSTEM//,/\\n}"); do
 done
 
 # Removing tmpdir
-cd /
 rm -rf $tmpdir
 
 # Calculation run time
@@ -882,14 +876,11 @@ msg="$msg\n$(date "+%F %T") Runtime: $run_time $min"
 #                       Vesta                              #
 #----------------------------------------------------------#
 
-# Deleting old backup records
-for backup_record in $deprecated; do
-    if [ -e "$USER_DATA/backup.conf" ]; then
-        sed -i "/DATE='$backup_record/d" $USER_DATA/backup.conf
-    fi
-done
+# Removing duplicate
+touch $USER_DATA/backup.conf
+sed -i "/$user.$DATE.tar/d" $USER_DATA/backup.conf
 
-# Concatenating string
+# Regestering new backup
 backup_str="BACKUP='$user.$DATE.tar'"
 backup_str="$backup_str TYPE='$BACKUP_SYSTEM' SIZE='$size'"
 backup_str="$backup_str WEB='${web_list// /,}'"
@@ -900,9 +891,13 @@ backup_str="$backup_str CRON='$cron_list'"
 backup_str="$backup_str UDIR='${udir_list// /,}'"
 backup_str="$backup_str RUNTIME='$run_time' TIME='$TIME' DATE='$DATE'"
 echo "$backup_str" >> $USER_DATA/backup.conf
+
+# Removing old backups
+tail -n $BACKUPS $USER_DATA/backup.conf > $USER_DATA/backup.conf_
+mv -f $USER_DATA/backup.conf_ $USER_DATA/backup.conf
 chmod 660 $USER_DATA/backup.conf
 
-# Clean backup queue
+# Deleting task from queue
 sed -i "/v-backup-user $user /d" $VESTA/data/queue/backup.pipe
 
 # Send notification

+ 1 - 1
bin/v-update-sys-ip-counters

@@ -45,7 +45,7 @@ for ip in $ip_list; do
 
     # Calculate usage
     ip_usage=$(grep -H $ip $VESTA/data/users/*/web.conf)
-    web_domains=$(echo "$ip_usage"| wc -l)
+    web_domains=$(echo "$ip_usage" | sed '/^$/d' | wc -l)
     sys_users=$(echo "$ip_usage" | cut -f7 -d/ | sort -u |\
         tr '\n' ',' | sed "s/,$//g")
 

+ 1 - 1
install/debian/exim4.conf.template

@@ -108,7 +108,7 @@ acl_check_rcpt:
   require message       = relay not permitted
           domains       = +local_domains : +relay_to_domains
 
-  deny    message       = smtp auth requried
+  deny    message       = smtp auth required
          sender_domains = +local_domains
          !authenticated = *
 

+ 1 - 1
install/debian/firewall/rules.conf

@@ -1,6 +1,6 @@
 RULE='1' ACTION='ACCEPT' PROTOCOL='ICMP' PORT='0' IP='0.0.0.0/0' COMMENT='PING' SUSPENDED='no' TIME='17:13:48' DATE='2014-09-16'
 RULE='2' ACTION='ACCEPT' PROTOCOL='TCP' PORT='8083' IP='0.0.0.0/0' COMMENT='VESTA' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
-RULE='3' ACTION='ACCEPT' PROTOCOL='TCP' PORT='3306,5432' IP='0.0.0.0/0' COMMENT='DB' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
+RULE='3' ACTION='ACCEPT' PROTOCOL='TCP' PORT='3306,5432' IP='127.0.0.1/32' COMMENT='DB' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='4' ACTION='ACCEPT' PROTOCOL='TCP' PORT='143,993' IP='0.0.0.0/0' COMMENT='IMAP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='5' ACTION='ACCEPT' PROTOCOL='TCP' PORT='110,995' IP='0.0.0.0/0' COMMENT='POP3' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='6' ACTION='ACCEPT' PROTOCOL='TCP' PORT='25,465,587,2525' IP='0.0.0.0/0' COMMENT='SMTP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'

+ 6 - 5
install/debian/nginx.conf

@@ -82,11 +82,12 @@ http {
     set_real_ip_from   198.41.128.0/17;
     set_real_ip_from   162.158.0.0/15;
     set_real_ip_from   104.16.0.0/12;
-    set_real_ip_from   2400:cb00::/32;
-    set_real_ip_from   2606:4700::/32;
-    set_real_ip_from   2803:f800::/32;
-    set_real_ip_from   2405:b500::/32;
-    set_real_ip_from   2405:8100::/32;
+    set_real_ip_from   172.64.0.0/13;
+    #set_real_ip_from   2400:cb00::/32;
+    #set_real_ip_from   2606:4700::/32;
+    #set_real_ip_from   2803:f800::/32;
+    #set_real_ip_from   2405:b500::/32;
+    #set_real_ip_from   2405:8100::/32;
     real_ip_header     CF-Connecting-IP;
 
 

+ 21 - 4
install/debian/whmcs-module.php

@@ -43,6 +43,8 @@ function vesta_CreateAccount($params) {
         curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
         $answer = curl_exec($curl);
 
+		logModuleCall('vesta','CreateAccount_UserAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
         // Enable ssh access
         if(($answer == 'OK') && ($params["configoption2"] == 'on')) {
             $postvars = array(
@@ -62,6 +64,8 @@ function vesta_CreateAccount($params) {
             curl_setopt($curl, CURLOPT_POST, true);
             curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
             $answer = curl_exec($curl);
+
+            logModuleCall('vesta','CreateAccount_EnableSSH','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
         }
 
         // Add domain
@@ -84,6 +88,8 @@ function vesta_CreateAccount($params) {
             curl_setopt($curl, CURLOPT_POST, true);
             curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
             $answer = curl_exec($curl);
+
+            logModuleCall('vesta','CreateAccount_AddDomain','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
         }
     }
 
@@ -92,8 +98,8 @@ function vesta_CreateAccount($params) {
     } else {
         $result = $answer;
     }
-    return $result;
 
+    return $result;
 }
 
 function vesta_TerminateAccount($params) {
@@ -122,6 +128,8 @@ function vesta_TerminateAccount($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','TerminateAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
@@ -129,7 +137,6 @@ function vesta_TerminateAccount($params) {
     }
 
     return $result;
-
 }
 
 function vesta_SuspendAccount($params) {
@@ -158,12 +165,15 @@ function vesta_SuspendAccount($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','SuspendAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
 
+    return $result;
 }
 
 function vesta_UnsuspendAccount($params) {
@@ -192,12 +202,15 @@ function vesta_UnsuspendAccount($params) {
         $answer = curl_exec($curl);
     }
 
+    logModuleCall('vesta','UnsuspendAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
 
+    return $result;
 }
 
 function vesta_ChangePassword($params) {
@@ -227,13 +240,15 @@ function vesta_ChangePassword($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','ChangePassword','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
+    
     return $result;
-
 }
 
 function vesta_ChangePackage($params) {
@@ -263,13 +278,15 @@ function vesta_ChangePackage($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','ChangePackage','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
-    return $result;
 
+    return $result;
 }
 
 function vesta_ClientArea($params) {

+ 1 - 1
install/rhel/exim.conf

@@ -108,7 +108,7 @@ acl_check_rcpt:
   require message       = relay not permitted
           domains       = +local_domains : +relay_to_domains
 
-  deny    message       = smtp auth requried
+  deny    message       = smtp auth required
          sender_domains = +local_domains
          !authenticated = *
 

+ 1 - 1
install/rhel/firewall/rules.conf

@@ -1,6 +1,6 @@
 RULE='1' ACTION='ACCEPT' PROTOCOL='ICMP' PORT='0' IP='0.0.0.0/0' COMMENT='PING' SUSPENDED='no' TIME='17:13:48' DATE='2014-09-16'
 RULE='2' ACTION='ACCEPT' PROTOCOL='TCP' PORT='8083' IP='0.0.0.0/0' COMMENT='VESTA' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
-RULE='3' ACTION='ACCEPT' PROTOCOL='TCP' PORT='3306,5432' IP='0.0.0.0/0' COMMENT='DB' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
+RULE='3' ACTION='ACCEPT' PROTOCOL='TCP' PORT='3306,5432' IP='127.0.0.1/32' COMMENT='DB' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='4' ACTION='ACCEPT' PROTOCOL='TCP' PORT='143,993' IP='0.0.0.0/0' COMMENT='IMAP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='5' ACTION='ACCEPT' PROTOCOL='TCP' PORT='110,995' IP='0.0.0.0/0' COMMENT='POP3' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='6' ACTION='ACCEPT' PROTOCOL='TCP' PORT='25,465,587,2525' IP='0.0.0.0/0' COMMENT='SMTP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'

+ 6 - 5
install/rhel/nginx.conf

@@ -82,11 +82,12 @@ http {
     set_real_ip_from   198.41.128.0/17;
     set_real_ip_from   162.158.0.0/15;
     set_real_ip_from   104.16.0.0/12;
-    set_real_ip_from   2400:cb00::/32;
-    set_real_ip_from   2606:4700::/32;
-    set_real_ip_from   2803:f800::/32;
-    set_real_ip_from   2405:b500::/32;
-    set_real_ip_from   2405:8100::/32;
+    set_real_ip_from   172.64.0.0/13;
+    #set_real_ip_from   2400:cb00::/32;
+    #set_real_ip_from   2606:4700::/32;
+    #set_real_ip_from   2803:f800::/32;
+    #set_real_ip_from   2405:b500::/32;
+    #set_real_ip_from   2405:8100::/32;
     real_ip_header     CF-Connecting-IP;
 
 

+ 21 - 4
install/rhel/whmcs-module.php

@@ -43,6 +43,8 @@ function vesta_CreateAccount($params) {
         curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
         $answer = curl_exec($curl);
 
+		logModuleCall('vesta','CreateAccount_UserAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
         // Enable ssh access
         if(($answer == 'OK') && ($params["configoption2"] == 'on')) {
             $postvars = array(
@@ -62,6 +64,8 @@ function vesta_CreateAccount($params) {
             curl_setopt($curl, CURLOPT_POST, true);
             curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
             $answer = curl_exec($curl);
+
+            logModuleCall('vesta','CreateAccount_EnableSSH','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
         }
 
         // Add domain
@@ -84,6 +88,8 @@ function vesta_CreateAccount($params) {
             curl_setopt($curl, CURLOPT_POST, true);
             curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
             $answer = curl_exec($curl);
+
+            logModuleCall('vesta','CreateAccount_AddDomain','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
         }
     }
 
@@ -92,8 +98,8 @@ function vesta_CreateAccount($params) {
     } else {
         $result = $answer;
     }
-    return $result;
 
+    return $result;
 }
 
 function vesta_TerminateAccount($params) {
@@ -122,6 +128,8 @@ function vesta_TerminateAccount($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','TerminateAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
@@ -129,7 +137,6 @@ function vesta_TerminateAccount($params) {
     }
 
     return $result;
-
 }
 
 function vesta_SuspendAccount($params) {
@@ -158,12 +165,15 @@ function vesta_SuspendAccount($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','SuspendAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
 
+    return $result;
 }
 
 function vesta_UnsuspendAccount($params) {
@@ -192,12 +202,15 @@ function vesta_UnsuspendAccount($params) {
         $answer = curl_exec($curl);
     }
 
+    logModuleCall('vesta','UnsuspendAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
 
+    return $result;
 }
 
 function vesta_ChangePassword($params) {
@@ -227,13 +240,15 @@ function vesta_ChangePassword($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','ChangePassword','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
+    
     return $result;
-
 }
 
 function vesta_ChangePackage($params) {
@@ -263,13 +278,15 @@ function vesta_ChangePackage($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','ChangePackage','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
-    return $result;
 
+    return $result;
 }
 
 function vesta_ClientArea($params) {

+ 1 - 1
install/ubuntu/apache2-pma.conf

@@ -15,7 +15,7 @@ Alias /phpmyadmin /usr/share/phpmyadmin
 		php_admin_flag allow_url_fopen Off
 		php_value include_path .
 		php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
-		php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext
+		php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext:/usr/share/javascript:
 	</IfModule>
 
 </Directory>

+ 1 - 1
install/ubuntu/exim4.conf.template

@@ -108,7 +108,7 @@ acl_check_rcpt:
   require message       = relay not permitted
           domains       = +local_domains : +relay_to_domains
 
-  deny    message       = smtp auth requried
+  deny    message       = smtp auth required
          sender_domains = +local_domains
          !authenticated = *
 

+ 1 - 1
install/ubuntu/firewall/rules.conf

@@ -1,6 +1,6 @@
 RULE='1' ACTION='ACCEPT' PROTOCOL='ICMP' PORT='0' IP='0.0.0.0/0' COMMENT='PING' SUSPENDED='no' TIME='17:13:48' DATE='2014-09-16'
 RULE='2' ACTION='ACCEPT' PROTOCOL='TCP' PORT='8083' IP='0.0.0.0/0' COMMENT='VESTA' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
-RULE='3' ACTION='ACCEPT' PROTOCOL='TCP' PORT='3306,5432' IP='0.0.0.0/0' COMMENT='DB' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
+RULE='3' ACTION='ACCEPT' PROTOCOL='TCP' PORT='3306,5432' IP='127.0.0.1/32' COMMENT='DB' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='4' ACTION='ACCEPT' PROTOCOL='TCP' PORT='143,993' IP='0.0.0.0/0' COMMENT='IMAP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='5' ACTION='ACCEPT' PROTOCOL='TCP' PORT='110,995' IP='0.0.0.0/0' COMMENT='POP3' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'
 RULE='6' ACTION='ACCEPT' PROTOCOL='TCP' PORT='25,465,587,2525' IP='0.0.0.0/0' COMMENT='SMTP' SUSPENDED='no' TIME='07:40:16' DATE='2014-05-25'

+ 6 - 5
install/ubuntu/nginx.conf

@@ -82,11 +82,12 @@ http {
     set_real_ip_from   198.41.128.0/17;
     set_real_ip_from   162.158.0.0/15;
     set_real_ip_from   104.16.0.0/12;
-    set_real_ip_from   2400:cb00::/32;
-    set_real_ip_from   2606:4700::/32;
-    set_real_ip_from   2803:f800::/32;
-    set_real_ip_from   2405:b500::/32;
-    set_real_ip_from   2405:8100::/32;
+    set_real_ip_from   172.64.0.0/13;
+    #set_real_ip_from   2400:cb00::/32;
+    #set_real_ip_from   2606:4700::/32;
+    #set_real_ip_from   2803:f800::/32;
+    #set_real_ip_from   2405:b500::/32;
+    #set_real_ip_from   2405:8100::/32;
     real_ip_header     CF-Connecting-IP;
 
 

+ 21 - 4
install/ubuntu/whmcs-module.php

@@ -43,6 +43,8 @@ function vesta_CreateAccount($params) {
         curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
         $answer = curl_exec($curl);
 
+		logModuleCall('vesta','CreateAccount_UserAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
         // Enable ssh access
         if(($answer == 'OK') && ($params["configoption2"] == 'on')) {
             $postvars = array(
@@ -62,6 +64,8 @@ function vesta_CreateAccount($params) {
             curl_setopt($curl, CURLOPT_POST, true);
             curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
             $answer = curl_exec($curl);
+
+            logModuleCall('vesta','CreateAccount_EnableSSH','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
         }
 
         // Add domain
@@ -84,6 +88,8 @@ function vesta_CreateAccount($params) {
             curl_setopt($curl, CURLOPT_POST, true);
             curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
             $answer = curl_exec($curl);
+
+            logModuleCall('vesta','CreateAccount_AddDomain','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
         }
     }
 
@@ -92,8 +98,8 @@ function vesta_CreateAccount($params) {
     } else {
         $result = $answer;
     }
-    return $result;
 
+    return $result;
 }
 
 function vesta_TerminateAccount($params) {
@@ -122,6 +128,8 @@ function vesta_TerminateAccount($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','TerminateAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
@@ -129,7 +137,6 @@ function vesta_TerminateAccount($params) {
     }
 
     return $result;
-
 }
 
 function vesta_SuspendAccount($params) {
@@ -158,12 +165,15 @@ function vesta_SuspendAccount($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','SuspendAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
 
+    return $result;
 }
 
 function vesta_UnsuspendAccount($params) {
@@ -192,12 +202,15 @@ function vesta_UnsuspendAccount($params) {
         $answer = curl_exec($curl);
     }
 
+    logModuleCall('vesta','UnsuspendAccount','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
 
+    return $result;
 }
 
 function vesta_ChangePassword($params) {
@@ -227,13 +240,15 @@ function vesta_ChangePassword($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','ChangePassword','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
+    
     return $result;
-
 }
 
 function vesta_ChangePackage($params) {
@@ -263,13 +278,15 @@ function vesta_ChangePackage($params) {
         $answer = curl_exec($curl);
     }
 
+	logModuleCall('vesta','ChangePackage','https://'.$params["serverhostname"].':8083/api/'.$postdata,$answer);
+
     if($answer == 'OK') {
         $result = "success";
     } else {
         $result = $answer;
     }
-    return $result;
 
+    return $result;
 }
 
 function vesta_ClientArea($params) {

+ 5 - 5
install/vst-install-debian.sh

@@ -26,7 +26,7 @@ help() {
    -f, --force                Force installation
    -i, --disable-iptables     Disable iptables support
    -b, --disable-fail2ban     Disable fail2ban protection
-   -n, --noupdate             Do not run yum update command
+   -n, --noupdate             Do not run apt-get upgrade command
    -s, --hostname             Set server hostname
    -e, --email                Set email address
    -p, --password             Set admin password instead of generating it
@@ -78,7 +78,7 @@ while getopts "hfibdnqe:m:p:s:" Option; do
         f) force='yes' ;;                 # Force install
         i) disable_iptables='yes' ;;      # Disable iptables
         b) disable_fail2ban='yes' ;;      # Disable fail2ban
-        n) noupdate='yes' ;;              # Disable yum update
+        n) noupdate='yes' ;;              # Disable apt-get upgrade
         s) servername=$OPTARG ;;          # Server hostname
         e) email=$OPTARG ;;               # Set email
         p) vpass=$OPTARG ;;               # Admin password
@@ -126,11 +126,11 @@ if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" != 'yes' ]; then
     exit 1
 fi
 
-# Check admin user account
+# Check admin group
 if [ ! -z "$(grep ^admin: /etc/group)" ] && [ "$force" != 'yes' ]; then
-    echo "Error: user admin exists"
+    echo "Error: group admin exists"
     echo
-    echo 'Please remove admin user account before proceeding.'
+    echo 'Please remove admin group before proceeding.'
     echo 'If you want to do it automatically run installer with -f option:'
     echo "Example: bash $0 --force"
     exit 1

+ 3 - 3
install/vst-install-rhel.sh

@@ -124,11 +124,11 @@ if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" != 'yes' ]; then
     exit 1
 fi
 
-# Check admin user account
+# Check admin group
 if [ ! -z "$(grep ^admin: /etc/group)" ] && [ "$force" != 'yes' ]; then
-    echo "Error: user admin exists"
+    echo "Error: group admin exists"
     echo
-    echo 'Please remove admin user account before proceeding.'
+    echo 'Please remove admin group before proceeding.'
     echo 'If you want to do it automatically run installer with -f option:'
     echo "Example: bash $0 --force"
     exit 1

+ 5 - 5
install/vst-install-ubuntu.sh

@@ -25,7 +25,7 @@ help() {
    -f, --force                Force installation
    -i, --disable-iptables     Disable iptables support
    -b, --disable-fail2ban     Disable fail2ban protection
-   -n, --noupdate             Do not run yum update command
+   -n, --noupdate             Do not run apt-get upgrade command
    -s, --hostname             Set server hostname
    -e, --email                Set email address
    -p, --password             Set admin password instead of generating it
@@ -77,7 +77,7 @@ while getopts "hfibdnqe:m:p:s:" Option; do
         f) force='yes' ;;                 # Force install
         i) disable_iptables='yes' ;;      # Disable iptables
         b) disable_fail2ban='yes' ;;      # Disable fail2ban
-        n) noupdate='yes' ;;              # Disable yum update
+        n) noupdate='yes' ;;              # Disable apt-get upgrade
         s) servername=$OPTARG ;;          # Server hostname
         e) email=$OPTARG ;;               # Set email
         p) vpass=$OPTARG ;;               # Admin password
@@ -123,11 +123,11 @@ if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" != 'yes' ]; then
     exit 1
 fi
 
-# Check admin user account
+# Check admin group
 if [ ! -z "$(grep ^admin: /etc/group)" ] && [ "$force" != 'yes' ]; then
-    echo "Error: user admin exists"
+    echo "Error: group admin exists"
     echo
-    echo 'Please remove admin user account before proceeding.'
+    echo 'Please remove admin group before proceeding.'
     echo 'If you want to do it automatically run installer with -f option:'
     echo "Example: bash $0 --force"
     exit 1

+ 2 - 2
install/vst-install.sh

@@ -27,11 +27,11 @@ if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ -z "$1" ]; then
     exit 1
 fi
 
-# Check admin user account
+# Check admin group
 if [ ! -z "$(grep ^admin: /etc/group)" ] && [ -z "$1" ]; then
     echo "Error: group admin exists"
     echo
-    echo 'Please remove admin user account before proceeding.'
+    echo 'Please remove admin group before proceeding.'
     echo 'If you want to do it automatically run installer with -f option:'
     echo "Example: bash $0 --force"
     exit 1

+ 3 - 0
src/rpm/conf/nginx.conf

@@ -82,6 +82,9 @@ http {
         root            /usr/local/vesta/web;
         charset         utf-8;
 
+        // Fix error "The plain HTTP request was sent to HTTPS port"
+        error_page      497 https://$host:$server_port$request_uri;
+
         ssl                  on;
         ssl_certificate      /usr/local/vesta/ssl/certificate.crt;
         ssl_certificate_key  /usr/local/vesta/ssl/certificate.key;

+ 471 - 0
web/inc/i18n/el.php

@@ -0,0 +1,471 @@
+<?php
+/**
+ * VestaCP interface translation in Greek.
+ * Translation by Cemendur.
+ * Last update: 10/03/2015
+ */
+
+$LANG['el'] = array(
+    'Packages'  => 'Πακέτα',
+    'IP'  => 'IP',
+    'Graphs'  => 'Γραφήματα',
+    'Statistics'  => 'Στατιστικά',
+    'Log'  => 'Αρχείο Καταγραφής',
+    'Services'  => 'Υπηρεσίες',
+    'Firewall' => 'Firewall',
+    'Updates'  => 'Ενημερώσεις',
+    'Log in'  => 'Σύνδεση',
+    'Log out'  => 'Αποσύνδεση',
+
+    'USER'  => 'ΧΡΗΣΤΗΣ',
+    'WEB'  => 'WEB',
+    'DNS'  => 'DNS',
+    'MAIL'  => 'MAIL',
+    'DB'  => 'DB',
+    'CRON'  => 'CRON',
+    'BACKUP'  => 'BACKUP',
+
+    'Add User'  => 'Προσθέστε χρήστη',
+    'Add Domain'  => 'Προσθέστε domain',
+    'Add Web Domain'  => 'Προσθέστε Web Domain',
+    'Add DNS Domain'  => 'Προσθέστε DNS Domain',
+    'Add DNS Record'  => 'Προσθέστε Εγγραφή DNS',
+    'Add Mail Domain'  => 'Προσθέστε Mail Domain',
+    'Add Mail Account'  => 'Προσθέστε Λογαριασμό Mail',
+    'Add Database'  => 'Προσθέστε Βάση Δεδομένων',
+    'Add Cron Job'  => 'Προσθέστε Cron Job',
+    'Create Backup'  => 'Δημιουργήστε αντίγραφο ασφαλείας',
+    'Configure'  => 'Ρύθμιση',
+    'Restore All'  => 'Επαναφορά Όλων',
+    'Add Package'  => 'Προσθήκη Πακέτου',
+    'Add IP'  => 'Προσθήκη Διεύθυνσης IP',
+    'Add Rule' => 'Προσθήκη Κανόνα',
+    'Ban IP Address' => 'Αποκλεισμός Διεύθυνσης IP',
+    'Search'  => 'Αναζήτηση',
+    'Add one more FTP Account' => 'Προσθήκη ενός ακόμα Λογαριασμού FTP',
+    'Overall Statistics'  => 'Συγκεντρωτικά Στατιστικά',
+    'Daily'  => 'Καθημερινά',
+    'Weekly'  => 'Εβδομαδιαία',
+    'Monthly'  => 'Μηνιαία',
+    'Yearly'  => 'Ετήσια',
+    'Add'  => 'Προσθήκη',
+    'Back'  => 'Πίσω',
+    'Save'  => 'Αποθήκευση',
+    'Submit'  => 'Υποβολή',
+
+    'toggle all'  => 'Εναλλαγή όλων',
+    'apply to selected'  => 'εφαρμογή επιλεγμένων',
+    'rebuild'  => 'επαναδημιουργία',
+    'rebuild web'  => 'επαναδημιουργία web',
+    'rebuild dns'  => 'επαναδημιουργία dns',
+    'rebuild mail'  => 'επαναδημιουργία mail',
+    'rebuild db'  => 'επαναδημιουργία db',
+    'rebuild cron'  => 'επαναδημιουργία cron',
+    'update counters'  => 'ενημέρωση μετρητών',
+    'suspend'  => 'αποκλεισμός',
+    'unsuspend'  => 'άρση αποκλεισμού',
+    'delete'  => 'διαγραφή',
+    'show per user'  => 'εμφάνιση ανά χρήστη',
+    'login as'  => 'είσοδος ως',
+    'logout'  => 'αποσύνδεση',
+    'edit'  => 'επεξεργασία',
+    'open webstats'  => 'άνοιγμα στατιστικών web',
+    'view logs'  => 'δείτε τα αρχεία καταγραφής',
+    'list records'  => 'εμφάνιση %s εγγραφών',
+    'add record'  => 'προσθήκη εγγραφής',
+    'list accounts'  => 'εμφάνιση %s λογαριασμών',
+    'add account'  => 'προσθήκη λογαριασμού',
+    'open webmail'  => 'άνοιγμα webmail',
+    'list fail2ban' => 'εμφάνιση fail2ban',
+    'open %s'  => 'άνοιγμα %s',
+    'download'  => 'λήψη',
+    'restore'  => 'επαναφορά',
+    'configure restore settings'  => 'επεξεργασία ρυθμίσεων επαναφοράς',
+    'stop'  => 'τερματισμός',
+    'start'  => 'εκκίνηση',
+    'restart'  => 'επανεκκίνηση',
+    'update'  => 'ενημέρωση',
+    'generate'  => 'δημιουργήστε',
+    'Generate CSR' => 'Δημιουργήστε CSR',
+    'reread IP' => 'Ενημέρωση IP',
+    'enable autoupdate' => 'ενεργοποίηση autoupdate',
+    'disable autoupdate' => 'απενεργοποίηση autoupdate',
+    'turn on notifications' => 'ενεργοποίηση ειδοποιήσεων',
+    'turn off notifications' => 'απενεργοποίηση ειδοποιήσεων',
+
+    'Adding User'  => 'Προσθήκη Χρήστη',
+    'Editing User'  => 'Επεξεργασία Χρήστη',
+    'Adding Domain'  => 'Προσθήκη Domain',
+    'Editing Domain'  => 'Επεξεργασία Domain',
+    'Adding DNS Domain'  => 'Προσθήκη DNS Domain',
+    'Editing DNS Domain'  => 'Επεξεργασία DNS Domain',
+    'Adding DNS Record'  => 'Προσθήκη Εγγραφής DNS',
+    'Editing DNS Record'  => 'Επεξεργασία Εγγραφής DNS',
+    'Adding Mail Domain'  => 'Προσθήκη Mail Domain',
+    'Editing Mail Domain'  => 'Επεξεργασία Mail Domain',
+    'Adding Mail Account'  => 'Προσθήκη Λογαριασμού Mail',
+    'Editing Mail Account'  => 'Επεξεργασία Λογαριασμού Mail',
+    'Adding database'  => 'Προσθήκη database',
+    'Editing Cron Job'  => 'Επεξεργασία Cron Job',
+    'Adding Cron Job'  => 'Προσθήκη Cron Job',
+    'Editing Database'  => 'Επεξεργασία Βάσης Δεδομένων',
+    'Adding Package'  => 'Προσθήκη Πακέτου',
+    'Editing Package'  => 'Επεξεργασία Πακέτου',
+    'Adding IP address'  => 'Προσθήκη Διεύθυνσης IP',
+    'Editing IP Address'  => 'Επεξεργασία Διεύθυνσης IP',
+    'Editing Backup Exclusions' => 'Επεξεργασία εξαιρέσεων αντιγράφου ασφαλείας',
+    'Generating CSR' => 'Δημιουργία CSR',
+    'Listing'  => 'Εμφάνιση',
+    'Search Results'  => 'Αναζήτηση Αποτελεσμάτων',
+    'Adding Firewall Rule' => 'Προσθήκη Κανόνα Τείχους Προστασίας',
+    'Editing Firewall Rule' => 'Επεξεργασία Κανόνα Τείχους Προστασίας',
+    'Adding IP Address to Banlist' => 'Προσθήκη Διεύθυνσης IP στη λίστα απαγόρευσης',
+
+    'active'  => 'ενεργό',
+    'spnd'  => 'ανεσταλμένο',
+    'suspended'  => 'ανεσταλμένο',
+    'running'  => 'εκτελείται',
+    'stopped'  => 'τερματισμένο',
+    'outdated'  => 'ανενημέρωτο',
+    'updated'  => 'ενημερωμένο',
+
+    'yes'  => 'ναι',
+    'no'  => 'όχι',
+    'none'  => 'κανένα',
+    'pb'  => 'pb',
+    'tb'  => 'tb',
+    'gb'  => 'gb',
+    'mb'  => 'mb',
+    'minute'  => 'λεπτό',
+    'hour'  => 'ώρα',
+    'day'  => 'ημέρα',
+    'days'  => 'ημέρες',
+    'hours'  => 'ώρες',
+    'minutes'  => 'λεπτά',
+    'month'  => 'μήνας',
+    'package'  => 'πακέτο',
+    'Bandwidth'  => 'Bandwidth',
+    'Disk'  => 'Δίσκος',
+    'Web'  => 'Web',
+    'Mail'  => 'Mail',
+    'Databases'  => 'Βάσεις Δεδομένων',
+    'User Directories'  => 'Κατάλογοι Χρήστη',
+    'Template'  => 'Template',
+    'Web Template'  => 'Apache Template',
+    'Proxy Template'  => 'Nginx Template',
+    'DNS Template'  => 'DNS Template',
+    'Web Domains'  => 'Web Domains',
+    'SSL Domains'  => 'SSL Domains',
+    'Web Aliases'  => 'Ψευδώνυμα Web',
+    'per domain'  => 'ανά domain',
+    'DNS Domains'  => 'DNS Domains',
+    'DNS Domains'  => 'DNS Domains',
+    'DNS records'   => 'Εγγραφές DNS'  ,
+    'Name Servers'  => 'Διακομιστές Ονομάτων',
+    'Mail Domains'  => 'Mail Domains',
+    'Mail Accounts'  => 'Λογαριασμοί Mail',
+    'Cron Jobs'  => 'Cron Jobs',
+    'SSH Access'  => 'Πρόσβαση SSH',
+    'IP Addresses'  => 'Διευθύνσεις IP',
+    'Backups'  => 'Αντίγραφα Ασφαλείας',
+    'Backup System'  => 'Σύστημα Αντιγράφων Ασφαλείας',
+    'backup exclusions' => 'εξαιρέσεις αντιγράφου ασφαλείας',
+    'template'  => 'template',
+    'SSL Support'  => 'Υποστήριξη SSL',
+    'SSL Home Directory'  => 'Αρχικός Κατάλογος SSL',
+    'Proxy Support'  => 'Υποστήριξη Nginx',
+    'Proxy Extensions'  => 'Πρόσθετα Nginx',
+    'Web Statistics'  => 'Στατιστικά Web',
+    'Additional FTP Account'  => 'Επιπρόσθετος Λογαριασμός FTP',
+    'SOA'  => 'SOA',
+    'TTL'  => 'TTL',
+    'Expire'  => 'Λήγει',
+    'Records'  => 'Εγγραφές',
+    'Catchall email'  => 'Catchall email',
+    'AntiVirus Support'  => 'Υποστήριξη AntiVirus',
+    'AntiSpam Support'  => 'Υποστήριξη AntiSpam',
+    'DKIM Support'  => 'Υποστήριξη DKIM',
+    'Accounts'  => 'Λογαριασμοί',
+    'Quota'  => 'Ποσοστό',
+    'Autoreply'  => 'Αυτόματη απάντηση',
+    'Forward to'  => 'Προώθηση σε',
+    'Do not store forwarded mail' => 'Μη αποθήκευση των προωθημένων mail',
+    'database'  => 'βάση δεδομένων',
+    'User'  => 'Χρήστης',
+    'Host'  => 'Host',
+    'Charset'  => 'Charset',
+    'Min'  => 'Λεπ',
+    'Hour'  => 'Ώρα',
+    'Day'  => 'Ημέρα',
+    'Month'  => 'Μήνας',
+    'Day of week'  => 'Ημέρα της εβδομάδας',
+    'local'  => 'τοπικά',
+    'Run Time'  => 'Ώρα',
+    'Backup Size'  => 'Μέγεθος Αντιγράφων Ασφαλείας',
+    'SYS'  => 'SYS',
+    'Domains'  => 'Domains',
+    'Status'  => 'Κατάσταση',
+    'shared'  => 'shared',
+    'dedicated'  => 'dedicated',
+    'Owner' => 'Ιδιοκτήτης',
+    'Users'  => 'Χρήστες',
+    'Load Average'  => 'Μέσος Όρος Φόρτου',
+    'Memory Usage'  => 'Χρήση Μνήμης',
+    'HTTPD Usage'  => 'Χρήση HTTPD',
+    'NGINX Usage'  => 'Χρήση NGINX',
+    'MySQL Usage on localhost'  => 'Χρήση της MySQL στο localhost',
+    'PostgreSQL Usage on localhost'  => 'Χρήση της PostgreSQL στο localhost',
+    'Bandwidth Usage eth0'  => 'Χρήση Bandwidth eth0',
+    'FTP Usage'  => 'Χρήση FTP ',
+    'SSH Usage'  => 'Χρήση SSH',
+    'reverse proxy'  => 'reverse proxy',
+    'web server'  => 'διακομιστής web ',
+    'dns server'  => 'διακομιστής dns',
+    'mail server'  => 'διακομιστής mail',
+    'pop/imap server'  => 'διακομιστής pop/imap',
+    'email antivirus'  => 'antivirus ηλεκτρονικής αλληλογραφίας',
+    'email antispam'  => 'antispam ηλεκτρονικής αλληλογραφίας',
+    'database server'  => 'διακομιστής βάσης δεδομένων',
+    'ftp server'  => 'διακομιστής ftp',
+    'job scheduler'  => 'job scheduler',
+    'CPU'  => 'CPU',
+    'Memory'  => 'Μνήμη',
+    'Uptime'  => 'χρόνος λειτουργίας',
+    'core package'  => 'πακέτο πυρήνα',
+    'php interpreter'  => 'διερμηνέας php',
+    'internal web server'  => 'εσωτερικός web server',
+    'Version'  => 'Έκδοση',
+    'Release'  => 'Κυκλοφορία',
+    'Architecture'  => 'Αρχιτεκτονική',
+    'Object'  => 'Αντικείμενο',
+    'Owner'  => 'Ιδιοκτήτης',
+    'Username'  => 'Όνομα Χρήστη',
+    'Password'  => 'Κωδικός',
+    'Email'  => 'Email',
+    'Package'  => 'Πακέτο',
+    'Language'  => 'Γλώσσα',
+    'First Name'  => 'Όνομα',
+    'Last Name'  => 'Επώνυμο',
+    'Send login credentials to email address'  => 'αποστολή των διαπιστευτηρίων εισόδου στην διεύθυνση ηλεκτρονικού ταχυδρομείου',
+    'Default Template'  => 'Προεπιλεγμένο Template',
+    'Default Name Servers'  => 'Προεπιλεγμένοι Name Servers',
+    'Domain'  => 'Domain',
+    'DNS Support'  => 'Υποστήριξη DNS',
+    'Mail Support'  => 'Υποστήριξη Mail',
+    'Advanced options'  => 'Προχωρημένες επιλογές',
+    'Aliases'  => 'Ψευδώνυμα',
+    'SSL Certificate'  => 'Πιστοποιητικό SSL',
+    'SSL Key'  => 'Κλειδί SSL',
+    'SSL Certificate Authority / Intermediate'  => 'Αρχή Πιστοποιητικού SSL  / Ενδιάμεσος',
+    'SSL CSR' => 'SSL CSR',
+    'optional'  => 'προεραιτικό',
+    'internal' => 'εσωτερικό',
+    'Statistics Authorization'  => 'Εξουσιοδότηση Στατιστικών',
+    'Statistics Auth'  => 'Εξουσιοδότηση Στατιστικών',
+    'Account'  => 'Λογαριασμός',
+    'Prefix will be automaticaly added to username'  => 'Πρόθεμα %s θα προστεθεί αυτόματα στο όνομα χρήστη',
+    'Send FTP credentials to email'  => 'Αποστολή διαπιστευτηρίων FTP στη διεύθυνση ηλεκτρονικού ταχυδρομείου',
+    'Expiration Date'  => 'Ημερομηνία Λήξης',
+    'YYYY-MM-DD'  => 'ΕΕΕΕ-MM-ΗΗ',
+    'Name servers'  => 'Name servers',
+    'Record'  => 'Εγγραφή',
+    'IP or Value'  => 'IP ή Τιμή',
+    'Priority'  => 'Προτεραιότητα',
+    'Record Number' => 'Αριθμός Εγγραφής',
+    'in megabytes'  => 'σε megabytes',
+    'Message'  => 'Μήνυμα',
+    'use local-part'  => 'χρήση τοπικού-μέρους',
+    'one or more email addresses'  => 'μία ή περισσότερες διευθύνσεις ηλεκτρονικού ταχυδρομείου',
+    'Prefix will be automaticaly added to database name and database user'  => 'Πρόθεμα %s θα προστεθεί στο όνομα της βάσης δεδομένων και στον χρήστη της.',
+    'Database'  => 'Βάση Δεδομένων',
+    'Type'  => 'Τύπος',
+    'Minute'  => 'Λεπτό',
+    'Command'  => 'Εντολή',
+    'Package Name'  => 'Όνομα Πακέτου',
+    'Netmask'  => 'Μάσκα Δικτύου',
+    'Interface'  => 'Διεπαφή',
+    'Shared'  => 'Διαμοιραζόμενα',
+    'Assigned user'  => 'Assigned user',
+    'Assigned domain'  => 'Assigned domain',
+    'NAT IP association' => 'NAT IP association',
+    'shell'  => 'κέλυφος',
+    'web domains'  => 'web domains',
+    'web aliases'  => 'Ψευδώνυμα web',
+    'dns records'  => 'Εγγραφές dns',
+    'mail domains'  => 'mail domains',
+    'mail accounts'  => 'Λογαριασμοί mail',
+    'accounts'  => 'λογαριασμοί',
+    'databases'  => 'βάσεις δεδομένων',
+    'cron jobs'  => 'cron jobs',
+    'backups'  => 'αντίγραφα ασφαλείας',
+    'quota'  => 'ποσοστό',
+    'day of week'  => 'ημέρα της εβδομάδας',
+    'cmd'  => 'cmd',
+    'users'  => 'χρήστες',
+    'domains'  => 'domains',
+    'aliases'  => 'ψευδώνυμα',
+    'records'  => 'εγγραφές',
+    'jobs'  => 'jobs',
+    'username'  => 'όνομα χρήστη',
+    'password'  => 'κωδικός πρόσβασης',
+    'type'  => 'τύπος',
+    'charset'  => 'charset',
+    'domain'  => 'domain',
+    'ip'  => 'ip',
+    'ip address'  => 'διεύθυνση ip',
+    'IP address'  => 'διεύθυνση IP',
+    'netmask'  => 'μάσκα δικτύου',
+    'interface'  => 'διεπαφή',
+    'assigned user'  => 'assigned user',
+    'ns1'  => 'ns1',
+    'ns2'  => 'ns2',
+    'user'  => 'χρήστης',
+    'email'  => 'διεύθυνση ηλεκτρονικού ταχυδρομείου',
+    'first name'  => 'όνομα',
+    'last name'  => 'επώνυμο',
+    'account'  => 'λογαριασμός',
+    'ssl certificate'  => 'πιστοποιητικό ssl',
+    'ssl key'  => 'κλειδί ssl',
+    'stats user password'  => 'στατιστικά χρήστης κωδικός πρόσβασης',
+    'stats username'  => 'στατιστικά όνομα χρήστη',
+    'stats password'  => 'στατιστικά κωδικός πρόσβασης',
+    'ftp user password'  => 'κωδικός πρόσβασης χρήστη ftp',
+    'ftp user'  => 'χρήστης ftp',
+    'Last 70 lines of %s.%s.log' => 'Τελευταίες 70 γραμμές του %s.%s.log',
+    'Download AccessLog' => 'Λήψη AccessLog',
+    'Download ErrorLog' => 'Λήψη ErrorLog',
+    'Country' => 'Χώρα',
+    '2 letter code' => 'κωδικός 2 χαρακτήρων',
+    'State / Province' => 'Πολιτεία / Επαρχία',
+    'City / Locality' => 'Πόλη / Περιοχή',
+    'Organization' => 'Οργάνωση',
+    'Action' => 'Ενέργεια',
+    'Protocol' => 'Πρωτόκολλο',
+    'Port' => 'Θύρα',
+    'Comment' => 'Σχόλιο',
+    'Banlist' => 'Λίστα απαγόρευσης',
+    'ranges are acceptable' => 'εύρος είναι αποδεκτό',
+    'CIDR format is supported' => 'To format CIDR υποστηρίζεται',
+
+    '1 account'  => '1 λογαριασμός',
+    '%s accounts'  => '%s λογαριασμοί',
+    '1 domain'  => '1 domain',
+    '%s domains'  => '%s domains',
+    '1 record'  => '1 εγγραφή',
+    '%s records'  => '%s εγγραφές',
+    '1 mail account'  => '1 λογιαριασμός mail',
+    '%s mail accounts'  => '%s λογαριασμοί mail',
+    '1 database'  => '1 βάση δεδομένων',
+    '%s databases'  => '%s βάσεις δεδομένων',
+    '1 cron job'  => '1 cron job',
+    '%s cron jobs'  => '%s cron jobs',
+    '1 archive'  => '1 αρχείο',
+    '%s archives'  => '%s αρχεία',
+    '1 package'  => '1 πακέτο',
+    '%s packages'  => '%s πακέτα',
+    '1 IP address'  => '1 διεύθυνση IP',
+    '%s IP addresses'  => '%s διευθύνσεις IP',
+    '1 month'  => '1 μήνας',
+    '%s months'  => '%s μήνες',
+    '1 log record'  => '1 εγγραφή καταγραφής',
+    '%s log records'  => '%s εγγραφές καταγραφής',
+    '1 object'  => '1 αντικείμενο',
+    '%s objects'  => '%s αντικείμενα',
+    'no exclusions' => 'χωρίς εξαιρέσεις',
+    '1 rule' => '1 κανόνας',
+    '%s rules' => '%s κανόνες',
+    'There are no currently banned IP' => 'Δεν έχει απαγορευτεί η πρόσβαση σε διευθύνσεις IP',
+
+    'USER_CREATED_OK'  => 'Ο χρήστης <a href="/edit/user/?user=%s"><b>%s</b></a> έχει δημιουργηθεί επιτυχώς.',
+    'WEB_DOMAIN_CREATED_OK'  => 'Το Domain <a href="/edit/web/?domain=%s"><b>%s</b></a> έχει δημιουργηθεί επιτυχώς.',
+    'DNS_DOMAIN_CREATED_OK'  => 'To DNS Domain <a href="/list/dns/?domain=%s"><b>%s</b></a> έχει δημιουργηθεί επιτυχώς.',
+    'DNS_RECORD_CREATED_OK'  => 'Η εγγραφή <b>%s.%s</b> έχει δημιουργηθεί επιτυχώς.',
+    'MAIL_DOMAIN_CREATED_OK'  => 'Το mail domain <a href="/list/mail/?domain=%s"><b>%s</b></a> έχει δημιουργηθεί επιτυχώς.',
+    'MAIL_ACCOUNT_CREATED_OK'  => 'Ο λογαριασμός mail <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> έχει δημιουργηθεί επιτυχώς.',
+    'DATABASE_CREATED_OK'  => 'Η βάση δεδομένων <a href="/edit/db/?database=%s"><b>%s</b></a> έχει δημιουργηθεί επιτυχώς.',
+    'CRON_CREATED_OK'  => 'Το cron job έχει δημιουργηθεί επιτυχώς.',
+    'IP_CREATED_OK'  => 'Η διεύθυνση IP <a href="/edit/ip/?ip=%s"><b>%s</b></a> έχει δημιουργηθεί επιτυχώς.',
+    'PACKAGE_CREATED_OK'  => 'Το πακέτο a href="/edit/package/?package=%s"><b>%s</b></a> έχει δημιουργηθεί επιτυχώς.',
+    'SSL_GENERATED_OK' => 'Το πιστοποιητικό έχει δημιουργηθεί επιτυχώς.',
+    'RULE_CREATED_OK' => 'Ο κανόνας έχει δημιουργηθεί επιτυχώς.',
+    'Autoupdate has been successfully enabled' => 'Η αυτόματη ενημέρωση έχει ενεργοποιηθεί επιτυχώς.',
+    'Autoupdate has been successfully disabled' => 'Η αυτόματη ενημέρωση έχει απενεργοποιηθεί επιτυχώς.',
+    'Cronjob email reporting has been successfully enabled' => 'Το Cronjob αναφοράς email έχει ενεργοποιηθεί επιτυχώς',
+    'Cronjob email reporting has been successfully disabled' => 'Το Cronjob αναφοράς email έχει απανεργοποιηθεί επιτυχώς',
+    'Changes has been saved.'  => 'Οι αλλαγές έχουν αποθηκευτεί.',
+    'Confirmation'  => 'Επιβεβαίωση',
+    'DELETE_USER_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να διαγράψετε τον χρήστη %s;',
+    'SUSPEND_USER_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αποκλείσετε τον χρήστη %s;',
+    'UNSUSPEND_USER_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αρθεί ο αποκλεισμός του χρήστη %s;',
+    'DELETE_DOMAIN_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να διαγράψετε τo Domain %s;',
+    'SUSPEND_DOMAIN_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αποκλείσετε τo Domain %s;',
+    'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αρθεί ο αποκλεισμός του Domain %s;',
+    'DELETE_RECORD_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να διαγράψετε την εγγραφή %s;',
+    'SUSPEND_RECORD_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αποκλείσετε την εγγραφή %s;',
+    'UNSUSPEND_RECORD_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αρθεί ο αποκλεισμός της εγγραφής %s;',
+    'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να διαγράψετε το %s;',
+    'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αποκλείσετε το %s;',
+    'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αρθεί ο αποκλεισμός του %s;',
+    'DELETE_DATABASE_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να διαγράψετε την βάση δεδομένων %s;',
+    'SUSPEND_DATABASE_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αποκλείσετε την βάση δεδομένων %s;',
+    'UNSUSPEND_DATABASE_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αρθεί ο αποκλεισμός της βάσης δεδομένων%s;',
+    'DELETE_CRON_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να διαγράψετε το cron job;',
+    'SUSPEND_CRON_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αποκλείσετε το cron job;',
+    'UNSUSPEND_CRON_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αρθεί ο αποκλεισμός του cron job;',
+    'DELETE_BACKUP_CONFIRMATION'  => 'Είστε σίγουρος πως θέλετε να διαγράψετε το %s αντίγραφο ασφαλείας;',
+    'DELETE_EXCLUSION_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να διαγράψετε την %s εξαίρεση;',
+    'DELETE_PACKAGE_CONFIRMATION'  => 'Είστε σίγουρος πως θέλετε να διαγράψετε το πακέτο %s;',
+    'DELETE_IP_CONFIRMATION'  => 'Είστε σίγουρος πως θέλετε να διαγράψετε την διεύθυνση IP %s;',
+    'DELETE_RULE_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να διαγράψετε τον κανόνα #%s?',
+    'SUSPEND_RULE_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αποκλείσετε τον κανόνα  #%s?',
+    'UNSUSPEND_RULE_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να αρθεί ο αποκλεισμός του κανόνα #%s?',
+    'RESTART_CONFIRMATION' => 'Είστε σίγουρος πως θέλετε να επανεκκινήσετε το %s?',
+    'Welcome'  => 'Καλωσήρθατε',
+    'LOGGED_IN_AS'  => 'Συνδεδεμένος ως χρήστης %s',
+    'Error'  => 'Σφάλμα',
+    'Invalid username or password'  => 'Λάθος όνομα χρήστη ή κωδικός πρόσβασης.',
+    'Invalid username or code'  => 'Λάθος όνομα χρήστη ή κωδικός.',
+    'Passwords not match'  => 'Δεν υπάρχει αντιστοιχία των κωδικών πρόσβασης.',
+    'Please enter valid email address.'  => 'Παρακαλώ εισάγετε μια έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου.',
+    'Field "%s" can not be blank.'  => 'Το πεδίο "%s" δεν επιτρέπεται να είναι κενό.',
+    'Password is too short.'  => 'Ο κωδικός πρόσβασης είναι πολύ μικρός (το ελάχιστο είναι 6 χαρακτήρες)',
+    'Error code:'  => 'Κωδικός λάθους: %s',
+    'SERVICE_ACTION_FAILED'  => '"%s" "%s" απέτυχε',
+    'IP address is in use' => 'Η διεύθυνση IP είναι σε χρήση',
+    'BACKUP_SCHEDULED'  => 'Η διεργασία έχει προστεθεί στην ουρά. Θα λάβετε ειδοποίηση ηλεκτρονικού ταχυδρομείου όταν το αντίγραφο ασφαλείας είναι έτοιμο προς λήψη.',
+    'BACKUP_EXISTS'  => 'Μια υπάρχουσα διεργασία δημιουργίας αντιγράφου ασφαλείας εκτελείται ήδη. Παρακαλώ περιμένετε να ολοκληρωθεί.',
+    'RESTORE_SCHEDULED'  => 'Η διεργασία έχει προστεθεί στην ουρά. Θα λάβετε ειδοποίηση ηλεκτρονικού ταχυδρομείου όταν η επαναφορά σας έχει ολοκληρωθεί.',
+    'RESTORE_EXISTS'  => 'Μια υπάρχουσα διεργασία επαναφοράς εκτελείται ήδη. Παρακαλώ περιμένετε να ολοκληρωθεί πριν την εκκινήσετε ξανά.',
+
+    'WEB_EXCLUSIONS' => "Πληκτρολογήστε το όνομα domain, ένα ανά σειρά. Για να εξαιρέσετε όλα τα ονόματα domain χρησιμοποιήστε *. Για να εξαιρέσετε συγκεκριμένους καταλόγους χρησιμοποιήστε την ακόλουθη μορφή: domain.com:public_html/cache:public_html/tmp",
+    'DNS_EXCLUSIONS' => "Πληκτρολογήστε το όνομα της διεύθυνσης DNS, ένα ανά σειρά. Για να εξαιρέσετε όλα τα ονόματα διεύθυνσης DNS χρησιμοποιήστε *",
+    'MAIL_EXCLUSIONS' => "Πληκτρολογήστε το όνομα της διεύθυνσης mail, ένα ανά σειρά. Για να εξαιρέσετε όλα τα ονόματα διεύθυνσης mail χρησιμοποιήστε *. Για να εξαιρέσετε συγκεκριμένους λογαριασμούς χρησιμοποιήσετε την ακόλουθη μορφή: domain.com:info:support:postmaster",
+    'DB_EXCLUSIONS' => "Πληκτρολογήστε το πλήρες όνομα της βάσης δεδομένων, ένα ανά σειρά. Για να εξαιρέσετε όλες τις βάσεις δεδομένων χρησιμοποιήστε *",
+    'CRON_EXCLUSIONS' => "Για να εξαιρέσετε όλα τα jobs χρησιμοποιήστε *",
+    'USER_EXCLUSIONS' => "Πληκτρολογήστε το όνομα καταλόγου, ένα ανά σειρά. Για να εξαιρέσετε όλους τους καταλόγους χρησιμοποιήστε *",
+
+    'Welcome to Vesta Control Panel'  => 'Καλωσήρθατε στον Πίνακα Ελέγχου Vesta',
+    'MAIL_FROM'  => 'Vesta Control Panel <noreply@%s>',
+    'GREETINGS_GORDON_FREEMAN' => "Γειά, %s %s,\n",
+    'GREETINGS' => "Γειά,\n",
+    'ACCOUNT_READY' => "Ο λογαριασμός σας δημιουργήθηκε και είναι έτοιμος για χρήση.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n",
+
+    'FTP login credentials'  => 'Διαπιστευτήρια εισόδου FTP',
+    'FTP_ACCOUNT_READY' => "Ο λογαριασμός FTP δημιουργήθηκε και είναι έτοιμος για χρήση.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n",
+
+    'Database Credentials'  => 'Διαπιστευτήρια Βάσης Δεδομένων',
+    'DATABASE_READY' => "Η βάση δεδομένων δημιουργήθηκε επιτυχώς.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n",
+
+    'forgot password'  => 'ξέχασα τον κωδικό πρόσβασης',
+    'Confirm'  => 'Επιβεβαίωση',
+    'New Password'  => 'Νέος κωδικός πρόσβασης',
+    'Confirm Password'  => 'Επιβεβαίωση κωδικού πρόσβασης',
+    'Reset'  => 'Επαναφορά',
+    'Reset Code'  => 'Επαναφορά κωδικού',
+    'RESET_NOTICE'  => '',
+    'RESET_CODE_SENT'  => 'Ο κωδικός επαναφοράς του κωδικού πρόσβασης έχει αποσταλεί στη διεύθυνση ταχυδρομείου σας<br>',
+    'MAIL_RESET_SUBJECT'  => 'Επαναφορά κωδικού πρόσβασης στο %s',
+    'PASSWORD_RESET_REQUEST' => "Για να επαναφέρετε τον κωδικό πρόσβασης του πίνακα ελέγχου σας, παρακαλώ ακολουθήστε το link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nΕναλλακτικά, πλοηγηθείτε στη διεύθυνση https://%s/reset/?action=code&user=%s και εισάγετε τον ακόλουθο κωδικό επαναφοράς:\n%s\n\nΕάν δεν ζητήσατε επαναφορά κωδικού πρόσβασης, παρακαλούμε αγνοείστε το παρόν μήνυμα και δεχθείτε τη συγγνώμη μας.\n\n--\nVesta Control Panel\n",
+);
+
+?>

+ 19 - 19
web/inc/i18n/tr.php

@@ -54,18 +54,18 @@ $LANG['tr'] = array(
 
     'toggle all'  => 'hepsini seç',
     'apply to selected'  => 'seçimi uygula',
-    'rebuild'  => 'rebuild',
-    'rebuild web'  => 'rebuild web',
-    'rebuild dns'  => 'rebuild dns',
-    'rebuild mail'  => 'rebuild mail',
-    'rebuild db'  => 'rebuild db',
-    'rebuild cron'  => 'rebuild cron',
+    'rebuild'  => 'yeniden oluştur',
+    'rebuild web'  => 'web\'i yeniden oluştur,
+    'rebuild dns'  => 'dns\'i yeniden oluştur',
+    'rebuild mail'  => 'mail\'i yeniden oluştur',
+    'rebuild db'  => 'db\'yi yeniden oluştur',
+    'rebuild cron'  => 'cron\'u yeniden oluştur',
     'update counters'  => 'sayaçları güncelle',
     'suspend'  => 'askıya al',
     'unsuspend'  => 'devam ettir',
     'delete'  => 'sil',
     'show per user'  => 'kullanıcı başına göster',
-    'login as'  => 'login as',
+    'login as'  => 'giriş yapıldı:',
     'logout'  => 'oturumu kapat',
     'edit'  => 'düzenle',
     'open webstats'  => 'webstats aç',
@@ -178,9 +178,9 @@ $LANG['tr'] = array(
     'Additional FTP Account'  => 'İlave FTP Hesabı',
     'SOA'  => 'SOA',
     'TTL'  => 'TTL',
-    'Expire'  => 'Expire',
-    'Records'  => 'Records',
-    'Catchall email'  => 'Catchall email',
+    'Expire'  => 'Sona ermiş',
+    'Records'  => 'Kayıtlar',
+    'Catchall email'  => 'Kapsamlı email',
     'AntiVirus Support'  => 'AntiVirus Desteği',
     'AntiSpam Support'  => 'AntiSpam Desteği',
     'DKIM Support'  => 'DKIM Desteği',
@@ -204,8 +204,8 @@ $LANG['tr'] = array(
     'SYS'  => 'SYS',
     'Domains'  => 'Domainler',
     'Status'  => 'Durum',
-    'shared'  => 'shared',
-    'dedicated'  => 'dedicated',
+    'shared'  => 'paylaşılan',
+    'dedicated'  => 'özel',
     'Owner' => 'Sahip',
     'Users'  => 'Kullanıcılar',
     'Load Average'  => 'Sistem Yükü',
@@ -231,11 +231,11 @@ $LANG['tr'] = array(
     'Memory'  => 'Hafıza',
     'Uptime'  => 'Uptime',
     'core package'  => 'core paketi',
-    'php interpreter'  => 'php interpreter',
-    'internal web server'  => 'internal web server',
+    'php interpreter'  => 'php yorumcusu',
+    'internal web server'  => 'dahili web sunucusu',
     'Version'  => 'Sürüm',
-    'Release'  => 'Release',
-    'Architecture'  => 'Architecture',
+    'Release'  => 'Yayınlanma',
+    'Architecture'  => 'Yapı',
     'Object'  => 'Nesne',
     'Owner'  => 'Sahip',
     'Username'  => 'Kullanıcı Adı',
@@ -252,7 +252,7 @@ $LANG['tr'] = array(
     'DNS Support'  => 'DNS Desteği',
     'Mail Support'  => 'Mail Desteği',
     'Advanced options'  => 'Gelişmiş seçenekler',
-    'Aliases'  => 'Aliases',
+    'Aliases'  => 'Takma adlar (Alias)',
     'SSL Certificate'  => 'SSL Sertifikası',
     'SSL Key'  => 'SSL Anahtarı (Key)',
     'SSL Certificate Authority / Intermediate'  => 'SSL Sertifika Yazarı / Aracı (Authority / Intermediate)',
@@ -283,13 +283,13 @@ $LANG['tr'] = array(
     'Package Name'  => 'Paket Adı',
     'Netmask'  => 'Netmask',
     'Interface'  => 'Arayüz',
-    'Shared'  => 'Shared',
+    'Shared'  => 'Paylaşılan',
     'Assigned user'  => 'Atanan kullanıcı',
     'Assigned domain'  => 'Atanan alan adı',
     'NAT IP association' => 'NAT IP association',
     'shell'  => 'shell',
     'web domains'  => 'web alan adları',
-    'web aliases'  => 'web aliases',
+    'web aliases'  => 'web takma adları',
     'dns records'  => 'dns kayıtları',
     'mail domains'  => 'mail domainleri',
     'mail accounts'  => 'mail hesapları',

+ 1 - 1
web/index.php

@@ -1,7 +1,7 @@
 <?php
 session_start();
 if (isset($_SESSION['user'])) {
-    header("Location: /list/user");
+    header("Location: /list/user/");
 } else {
     header("Location: /login/");
 }

+ 22 - 9
web/templates/admin/add_firewall_banlist.html

@@ -51,15 +51,28 @@
                             </tr>
                             <tr>
                                 <td>
-                                    <select class="vst-list" name="v_chain">
-                                        <option value="SSH" <?php if ((!empty($v_chain)) && ( $v_chain == "'SSH'" )) echo 'selected'?>><?php print __('SSH') ?></option>
-                                        <option value="WEB" <?php if ((!empty($v_chain)) && ( $v_chain == "'WEB'" )) echo 'selected'?>><?php print __('WEB') ?></option>
-                                        <option value="FTP" <?php if ((!empty($v_chain)) && ( $v_chain == "'FTP'" )) echo 'selected'?>><?php print __('FTP') ?></option>
-                                        <option value="DNS" <?php if ((!empty($v_chain)) && ( $v_chain == "'DNS'" )) echo 'selected'?>><?php print __('DNS') ?></option>
-                                        <option value="MAIL" <?php if ((!empty($v_chain)) && ( $v_chain == "'MAIL'" )) echo 'selected'?>><?php print __('MAIL') ?></option>
-                                        <option value="DB" <?php if ((!empty($v_chain)) && ( $v_chain == "'DB'" )) echo 'selected'?>><?php print __('DB') ?></option>
-                                        <option value="VESTA" <?php if ((!empty($v_chain)) && ( $v_chain == "'VESTA'" )) echo 'selected'?>><?php print __('VESTA') ?></option>
-                                    </select>
+									<select class="vst-list" name="v_chain">
+									<?php	
+										// chains list
+										$chains = array(
+											'SSH',
+											'WEB',
+											'FTP',
+											'DNS',
+											'MAIL',
+											'DB',
+											'VESTA'
+										);
+										
+										foreach($chains as $chain){
+											$selected = (!empty($v_chain)) && ( $v_chain == $chain) ? 'selected' : '';
+									?>
+										<option value="<?php echo $chain?>" <?php echo $selected ?>>
+											<?php print __($chain) ?>
+										</option>
+									
+									<?php } ?>
+									</select>                                    
                                 </td>
                             </tr>
                             <tr>