diff --git a/bin/v-update-sys-ip-counters b/bin/v-update-sys-ip-counters index dd51f9e9a..bafeed130 100755 --- a/bin/v-update-sys-ip-counters +++ b/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") diff --git a/install/debian/exim4.conf.template b/install/debian/exim4.conf.template index 742f0409e..64cd03fca 100644 --- a/install/debian/exim4.conf.template +++ b/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 = * diff --git a/install/debian/whmcs-module.php b/install/debian/whmcs-module.php index b3b1710ee..1cb250611 100644 --- a/install/debian/whmcs-module.php +++ b/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) { diff --git a/install/rhel/exim.conf b/install/rhel/exim.conf index 0f9830168..d75192e7c 100644 --- a/install/rhel/exim.conf +++ b/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 = * diff --git a/install/rhel/whmcs-module.php b/install/rhel/whmcs-module.php index b3b1710ee..1cb250611 100644 --- a/install/rhel/whmcs-module.php +++ b/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) { diff --git a/install/ubuntu/exim4.conf.template b/install/ubuntu/exim4.conf.template index 742f0409e..64cd03fca 100644 --- a/install/ubuntu/exim4.conf.template +++ b/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 = * diff --git a/install/ubuntu/whmcs-module.php b/install/ubuntu/whmcs-module.php index b3b1710ee..1cb250611 100644 --- a/install/ubuntu/whmcs-module.php +++ b/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) { diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 22a5ad19a..71a136d92 100644 --- a/install/vst-install-debian.sh +++ b/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 diff --git a/install/vst-install-rhel.sh b/install/vst-install-rhel.sh index ab1692a81..218c08401 100644 --- a/install/vst-install-rhel.sh +++ b/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 diff --git a/install/vst-install-ubuntu.sh b/install/vst-install-ubuntu.sh index 14ff61c11..da443348d 100644 --- a/install/vst-install-ubuntu.sh +++ b/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 diff --git a/install/vst-install.sh b/install/vst-install.sh index 864b671d2..9c064ab01 100644 --- a/install/vst-install.sh +++ b/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 diff --git a/src/rpm/conf/nginx.conf b/src/rpm/conf/nginx.conf index 7a3d2fd0e..bf3618969 100644 --- a/src/rpm/conf/nginx.conf +++ b/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; diff --git a/web/js/pages/add.package.js b/web/js/pages/add.package.js index 2d71a6cca..6aa773db0 100644 --- a/web/js/pages/add.package.js +++ b/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 diff --git a/web/js/pages/edit.package.js b/web/js/pages/edit.package.js index 63178e861..b1f2cb345 100644 --- a/web/js/pages/edit.package.js +++ b/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 diff --git a/web/templates/admin/add_firewall_banlist.html b/web/templates/admin/add_firewall_banlist.html index 9f8a6fd56..427fabfb0 100644 --- a/web/templates/admin/add_firewall_banlist.html +++ b/web/templates/admin/add_firewall_banlist.html @@ -51,15 +51,28 @@