浏览代码

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

Serghey Rodin 11 年之前
父节点
当前提交
ebe8173af1

+ 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 = *
 

+ 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 = *
 

+ 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/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 = *
 

+ 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;

+ 17 - 3
web/js/pages/add.package.js

@@ -11,9 +11,14 @@ App.Actions.PACKAGE.disable_unlimited = function(elm, source_elm) {
     if ($(elm).data('prev_value') && $(elm).data('prev_value').trim() != '') {
         var prev_value = $(elm).data('prev_value').trim();
         $(elm).val(prev_value);
+        if (App.Helpers.isUnlimitedValue(prev_value)) {
+            $(elm).val('0');
+        }
     }
     else {
-        $(elm).val('0');
+        if (App.Helpers.isUnlimitedValue($(elm).val())) {
+            $(elm).val('0');
+        }
     }
     $(elm).attr('disabled', false);
     $(source_elm).css('opacity', '0.5');
@@ -38,16 +43,25 @@ App.Listeners.PACKAGE.checkbox_unlimited_feature = function() {
 App.Listeners.PACKAGE.init = function() {
     $('.unlim-trigger').each(function(i, elm) {
         var ref = $(elm).prev('.vst-input');
-        if ($(ref).val().trim() == App.Constants.UNLIM_VALUE || $(ref).val().trim() == App.Constants.UNLIM_TRANSLATED_VALUE) {
-            $(ref).val('0');
+        if (App.Helpers.isUnlimitedValue($(ref).val())) {
             App.Actions.PACKAGE.enable_unlimited(ref, elm);
         }
         else {
+            $(ref).data('prev_value', $(ref).val());
             App.Actions.PACKAGE.disable_unlimited(ref, elm);
         }
     });
 }
 
+App.Helpers.isUnlimitedValue = function(value) {
+    var value = value.trim();
+    if (value == App.Constants.UNLIM_VALUE || value == App.Constants.UNLIM_TRANSLATED_VALUE) {
+        return true;
+    }
+
+    return false;
+}
+
 //
 // Page entry point
 // Trigger listeners

+ 17 - 3
web/js/pages/edit.package.js

@@ -11,9 +11,14 @@ App.Actions.PACKAGE.disable_unlimited = function(elm, source_elm) {
     if ($(elm).data('prev_value') && $(elm).data('prev_value').trim() != '') {
         var prev_value = $(elm).data('prev_value').trim();
         $(elm).val(prev_value);
+        if (App.Helpers.isUnlimitedValue(prev_value)) {
+            $(elm).val('0');
+        }
     }
     else {
-        $(elm).val('0');
+        if (App.Helpers.isUnlimitedValue($(elm).val())) {
+            $(elm).val('0');
+        }
     }
     $(elm).attr('disabled', false);
     $(source_elm).css('opacity', '0.5');
@@ -38,16 +43,25 @@ App.Listeners.PACKAGE.checkbox_unlimited_feature = function() {
 App.Listeners.PACKAGE.init = function() {
     $('.unlim-trigger').each(function(i, elm) {
         var ref = $(elm).prev('.vst-input');
-        if ($(ref).val().trim() == App.Constants.UNLIM_VALUE || $(ref).val().trim() == App.Constants.UNLIM_TRANSLATED_VALUE) {
-            $(ref).val('0');
+        if (App.Helpers.isUnlimitedValue($(ref).val())) {
             App.Actions.PACKAGE.enable_unlimited(ref, elm);
         }
         else {
+            $(ref).data('prev_value', $(ref).val());
             App.Actions.PACKAGE.disable_unlimited(ref, elm);
         }
     });
 }
 
+App.Helpers.isUnlimitedValue = function(value) {
+    var value = value.trim();
+    if (value == App.Constants.UNLIM_VALUE || value == App.Constants.UNLIM_TRANSLATED_VALUE) {
+        return true;
+    }
+
+    return false;
+}
+
 //
 // Page entry point
 // Trigger listeners

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