Преглед изворни кода

Merge pull request #1302 from hestiacp/staging/release/v1.3.0

Staging/release/v1.3.0
Raphael Schneeberger пре 5 година
родитељ
комит
429dd03941

+ 50 - 40
CHANGELOG.md

@@ -3,48 +3,58 @@ All notable changes to this project will be documented in this file.
 
 ## [1.3.0] - Major Release (Feature / Quality Update)
 ### Features
-- Users can now choose to point a domain to a different document root (similar to domain parking).
-- The software update procedure will now perform a system health check prior to installation and repair missing environment variables.
+- Users can now choose to point a domain to a different document root location (similar to domain parking).
+- The software update process will now perform a system health check before proceeding with installation.
 - Administrators now have control over software update notifications through the following settings in `$HESTIA/conf/hestia.conf` and through the Control Panel web interface:
-    - `UPGRADE_SEND_EMAIL` = Sends an email notification to admin email address
-    - `UPGRADE_SEND_EMAIL_LOG` = Sends installation log output to admin email address
-- Upgrade process will now save logs to the `hst_backups` directory.
-- Support for removing backup remote location (#1083).
-- Add support Proftpd TLS Support
-- Add the possibility to assign user "Administrators" rights on login. Replaces "root" login. Notifications are only send towards the "admin" account email.
-- Updated translations system with the use of Gettext. Modified / Updated all translated strings.
-- Use php7.4 as default version.
-- Updated MariaDB to 10.5 (Manual upgrade required install/upgrade/manual/upgrade_mariadb.sh).
-- Added support for Turkish (emrahk [Forum](https://forum.hestiacp.com/t/how-to-contribute-with-translations/1664/4?u=eris) )
+    - `UPGRADE_SEND_EMAIL` = Sends an email notification to primary admin account's email address
+    - `UPGRADE_SEND_EMAIL_LOG` = Sends installation log output to the primary admin account's email address
+- The upgrade process will now save installation logs to the `/root/hst_backups` directory by default for post-install troubleshooting.
+    - **Note:** We may adjust this path in the future and will document such changes as they happen.
+- We've introduced the ability to assign Administrator rights to other user accounts, enabling them to perform tasks under the Server Settings tab.
+- We've introduced a more robust translation system which will allow us to provide higher quality translations in future releases.
+    - **Note:** Some country codes have been updated, as a result your language setting may default back to English after upgrading.
+- For new installations, MariaDB 10.5 is now the default version.
+    - For existing installations, we've provided a manual post-install upgrade script. Please run `$HESTIA/install/upgrade/manual/upgrade_mariadb.sh` to migrate to MariaDB 10.5).
+- The user interface theme has been set to "Dark" by default. This can be changed from **Server Settings > Configure > Basic Options > Appearance**.
+    - **Note:** The name of the default theme has not been adjusted, and the change to the "dark" theme only applies to new installations at this time. This behavior may be changed in a future release.
 
-## Bugfixes
-- Removed root login (root / root password )
-- Update apache2.conf replace Include with IncludeOptional (#1072)
-- Add ca-certificates, software-properties-common to the dependencies (#1073 + [Forum](https://forum.hestiacp.com/t/hestiscp-fails-on-new-debian-9-vps/1623/8) ) @daniel-eder
-- Fixed issues with database port during backup when port was missing (#1068)
-- Postqresql: forbid the use of upper case (#1084) causing issues with backup / creating database or user
-- Fixed permissions email account during restore (#1114)
-- Create .npm on creating new user (#1113) @hahagu 
-- Fixed Access to a website without a ssl certificate on https shows the content of the first, valid ssl website (#1103)
-- Fixed an issue when installing --with-debs and version check (#1110)
-- Improved Translations Chinese @myrevery
-- File manager create directory with proper permissions 
-- Removed loop ad v-rebuild-all (#1096)
-- Add $restart flag to v-add-web-domain-backend call (#1094) (#797) @bright-soft
-- Fixed an issue with Restore Failed on Domains with Mail Setups using SSL (#1069)
-- Fixed an issue with PHPMyAdmin button (#1078)
-- Changed WordPress name in Webapp installer (#1074)
-- Add a free disk space validation during backup routine (#1115)
-- Removed PHP validation SSH keys allowing support other types then RSA / DSA
-- Fixed an issue which cause wrong password generation (#1184)
-- Fixed issue with v-add-sys-ip and saving the ip configuration to correct port (@madito)
-- Updated Exim black list for extensions (@kpapad904 / #1138)
-- Fixed multiple bugs due to translations 
-- Fixed bug with passwords containing "'" [Forum](https://forum.hestiacp.com/t/two-factor-authentication-issue-with-standard-user/1652/)
-- Refactor LXD  Complier script
-- Set default theme to "Dark"
-- Clean up gmail.tpl (DNS) (@madito)
-- Improved translations (NL, DE, UK, RU, ES, IT, ZH-CN)
+### Bugfixes
+- Fixed a security issue where user password reset keys could potentially be gleaned from system process list - thanks **RACK911 LABS**
+- Fixed an issue with passwords containing "`'`" - [Forum](https://forum.hestiacp.com/t/two-factor-authentication-issue-with-standard-user/1652/)
+- Fixed an issue with database backups when the port was not specified (#1068)
+- Fixed an issue where websites without SSL enabled would display the content of the first valid SSL enabled website (#1103)
+- Fixed an issue that would occur when using the `--with-debs` flag with the installer due to an incorrect version check routine (#1110)
+- Fixed an issue with incorrect permissions which would occur when restoring email accounts (#1114)
+- Fixed an issue where the File Manager would apply the wrong permissions on new directories
+- Fixed an issue that prevented successful restoration of SSL-enabled mail domains from a backup archive (#1069)
+- Fixed an issue where the phpMyAdmin button would not work in the Control Panel Web UI (#1078)
+- Fixed an issue where passwords were generated incorrectly (#1184)
+- Fixed an issue in `v-add-sys-ip` to ensure IP configuration is set to the correct port - thanks **@madito**
+- Fixed an issue that resulted in an extended loop condition when running `v-rebuild-all`
+- Improved support for API key usage with the `v-add-remote-dns-host` command (#1265)
+- Improved validation of free disk space when executing backup routine (#1115)
+- Improved support for SSH key types other than RSA / DSA
+- Improved reliability of backup function when removing remote locations (#1083)
+- Improved spam filtering by adding additional known-dangerous file extensions in exim's blacklist (#1138) - thanks **@kpapad904**
+- Updated Apache2 configuration to use Include with IncludeOptional (#1072)
+- Removed the ability to log in as "root" (whic logged to the admin account, deemed no longer necessary)
+- Add ca-certificates, software-properties-common to the dependencies (#1073 + [Forum](https://forum.hestiacp.com/t/hestiscp-fails-on-new-debian-9-vps/1623/8)) - thanks **@daniel-eder**
+- Create .npm directory by default when creating new user accounts (#1113) - thanks **@hahagu** 
+- Improved accuracy of several UI translations (NL, DE, UK, RU, ES, IT, ZH-CN) - thanks **@myrevery** and other contributors for your work!
+- Added `$restart` flag to `v-add-web-domain-backend` command (#1094) (#797) - thanks **@bright-soft**
+- PostgreSQL: forbid the use of upper case (#1084) causing issues with backup / creating database or user
+- Changed WordPress name in Quick Web App installer (#1074)
+- Cleaned up entries used in the Google / Gmail DNS template - thanks **@madito**
+- Enhanced ProFTPd support for TLS
+- Refactored LXD compiler script
+- Updated phpMyAdmin to version 5.0.4
+
+## [1.2.4] - Service Release
+### Features
+- No new features have been introduced in this release.
+
+### Bugfixes
+- Fixes an issue on auto renewing let's encrypt certificates.
 
 ## [1.2.3] - Service Release
 ### Features

+ 4 - 4
CONTRIBUTING.md

@@ -27,9 +27,9 @@ We have three primary or "evergreen" branches, which exist throughout our produc
 
 | Branch        | Description     | Cycle           |
 |---------------|:---------------:|:---------------:|
-| `main`        | Contains a snapshot of the latest development code.<br>**Not intended for production use and may be unstable.** | Daily  |
+| `main`        | Contains a snapshot of the latest development code.<br>**Not intended for production use and contains code from a merge snapshot.** | Daily  |
 | `beta`        | Contains a snapshot of the next version which is currently in testing.<br>**Not intended for production but should be highly stable.**  | Weekly |
-| `release`     | Contains a snapshot of the latest stable release.<br>**Intended for production use. Same code as packages in repository.** | Monthly |
+| `release`     | Contains a snapshot of the latest stable release.<br>**Intended for production use. This repository contains the same code as our compiled packages.** | Monthly |
 
 ### Creating a new branch and submitting pull requests
 The first step is to create a fork of the `hestiacp/hestiacp` repository under your account so that you may submit pull requests and patches via GitHub. 
@@ -37,7 +37,7 @@ The first step is to create a fork of the `hestiacp/hestiacp` repository under y
 Once you've created your fork, clone the repository to your computer and make sure that you've checked out the `main` branch. **Always** create a new topic branch for you work. When submitting pull requests it is important that you target the correct branch to ensure that your changes are properly integrated and tested based on our release schedule. When creating a new branch, we ask that you please adhere to the following naming conventions as much as possible:
 
 ### Branch naming convention:
-- **Prefix:** `topic/` (such as **bugfix**, **feature**, **refactor**, etc.)
+- **Prefix:** `topic/` (such as **fix**, **feature**, **refactor**, etc.)
 - **ID**: `888` (GitHub Issue ID if an issue exists) -or- `2020-07` (Year-Month if an issue does not already exist)
 - **Separator:** `_` (underscore)
 - **Title:** `my-awesome-patch`
@@ -49,7 +49,7 @@ Branch name examples:
 * `test/2020-07_mail-domain-ssl`
 
 ### Squashing commits for smaller changes
-When submitting a pull request with multiple smaller commits which are related to the same file or issue, we ask that you please **squash your commits** whenever appropriate in order to keep the project's commit history clean and easy to follow for other developers.
+To aid other developers and keep the project's commit history clean, please **squash your commits** when it's appropriate. For example with smaller commits related to the same piece of code, such as commits labelled "Fixed item 1", "Adjusted color of button XYZ", "Adjusted alignment of button XYZ" can be squashed into one commit with the title "Fixed button issues in item". 
 
 ### What happens when I submit a pull request?
 - Our internal development team will review your work and validate your request.

+ 4 - 4
ISSUE_TEMPLATE.md

@@ -8,8 +8,8 @@
 Please enter your answer here (e.g. When I try adding a web domain, an error message appeared stating that the php-fpm pool did not exist).
 
 ### What steps did you take when the issue occured? 
-1. Ex.: Click on the Web tab
-2. Ex.: Click on Add Web Domain
+1. Ex.: Click on the "Web" tab.
+2. Ex.: Click on "Add Web Domain".
 3. Ex.: Attempted to add a domain and received an Internal Server Error.
 
 ### Expected behavior:
@@ -19,7 +19,7 @@ Please enter your answer here (e.g. the web domain should have been added succes
 Please enter your answer here (e.g. Ubuntu 20.04 LTS)
 
 ### Hestia Control Panel version:
-Please enter your answer here (e.g. 1.2.0). 
+Please enter your answer here (e.g. 1.3.0). 
 
 ### Additional notes:
-If there is anything else that you'd like us to know about this issue, feel free to share here.
+If there is anything else that you'd like us to know about this issue that will help us diagnose and troubleshoot more effectively, such as links to forum posts or other discussions, please feel free to share here.

+ 2 - 2
README.md

@@ -2,12 +2,12 @@
 
 [Hestia Control Panel](https://www.hestiacp.com/)
 ==================================================
-**Latest stable release:** Version 1.2.4 | [View Changelog](https://github.com/hestiacp/hestiacp/blob/release/CHANGELOG.md)<br>
+**Latest stable release:** Version 1.3.0 | [View Changelog](https://github.com/hestiacp/hestiacp/blob/release/CHANGELOG.md)<br>
 
 **Web:** [www.hestiacp.com](https://www.hestiacp.com/)<br>
 **Documentation:** [docs.hestiacp.com](https://docs.hestiacp.com/)<br>
 **Forums:** [forum.hestiacp.com](https://forum.hestiacp.com/)<br>
-**Discord:** [Join HestiaCP Discord channel](https://discord.gg/nXRUZch)<br />
+**Discord:** [Join the discussion](https://discord.gg/nXRUZch)<br />
 <br>
 [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ST87LQH2CHGLA)
 <br>

+ 6 - 3
SECURITY.md

@@ -2,6 +2,9 @@
 
 ## Reporting a Vulnerability
 
-If you have discovered a vulnerability in Hestia Control Panel,
-let our development team know via e-mail at info@hestiacp.com and
-we will respond as soon as possible.
+If you believe that you have have discovered a vulnerability in Hestia Control Panel,
+please let our development team know via email at info@hestiacp.com. 
+
+We ask that you please include a detailed description of the vulnerability,
+a list of services involved (e.g. exim, dovecot) and the versions which you've tested,
+full steps to reproduce the vulnerability, and include your findings and expected results.

+ 14 - 6
bin/v-change-user-rkey

@@ -1,8 +1,8 @@
 #!/bin/bash
-# info: change user password
-# options: USER
+# info: change user random key
+# options: USER [HASH]
 #
-# The function changes user's password and updates RKEY value.
+# The function changes user's RKEY value thats has been used for security value to be used forgot password function only.
 
 
 #----------------------------------------------------------#
@@ -11,8 +11,9 @@
 
 # Argument definition
 user=$1
+hash=$2
 
-
+echo $rkeyhash;
 # Importing system enviroment  as we run this script
 # mostly by cron wich not read it by itself
 source /etc/profile
@@ -25,7 +26,7 @@ source $HESTIA/conf/hestia.conf
 #                    Verifications                         #
 #----------------------------------------------------------#
 
-check_args '1' "$#" 'USER'
+check_args '1' "$#" 'USER [HASH]'
 is_format_valid 'user'
 is_object_valid 'user' 'USER' "$user"
 is_object_unsuspended 'user' 'USER' "$user"
@@ -33,6 +34,13 @@ is_object_unsuspended 'user' 'USER' "$user"
 # Perform verification if read-only mode is enabled
 check_hestia_demo_mode
 
+if [ ! -z "$hash" ]; then
+    password=$hash
+    is_password_valid
+    hash=$password;
+else
+    hash=$(generate_password)
+fi
 #----------------------------------------------------------#
 #                       Action                             #
 #----------------------------------------------------------#
@@ -44,7 +52,7 @@ d=$(date +%s)
 #----------------------------------------------------------#
 
 # Changing RKEY value
-update_user_value "$user" '$RKEY' "$(generate_password)"
+update_user_value "$user" '$RKEY' "$hash"
 
 #check if RKEYEXP exists
 if [ -z "$(grep RKEYEXP $USER_DATA/user.conf)" ]; then

+ 2 - 1
func/upgrade.sh

@@ -435,7 +435,8 @@ upgrade_start_backup() {
                 echo "      ---- mysql"
             fi
             cp -f /etc/mysql/*.cnf $HESTIA_BACKUP/conf/mysql/
-            cp -f /etc/mysql/conf.d/*.cnf $HESTIA_BACKUP/conf/mysql/      
+            cp -f /etc/mysql/conf.d/*.cnf $HESTIA_BACKUP/conf/mysql/ > /dev/null 2>&1
+            cp -f /etc/mysql/mariadb.conf.d/*.cnf $HESTIA_BACKUP/conf/mysql/ > /dev/null 2>&1       
         fi
         if [[ "$DB_SYSTEM" =~ "pgsql" ]]; then
             if [ "$DEBUG_MODE" = "true" ]; then

+ 1 - 0
install/deb/mysql/my-large.cnf

@@ -40,3 +40,4 @@ interactive_timeout=50
 long_query_time=5
 
 !includedir /etc/mysql/conf.d/
+!includedir /etc/mysql/mariadb.conf.d/

+ 1 - 0
install/deb/mysql/my-medium.cnf

@@ -39,3 +39,4 @@ interactive_timeout=50
 long_query_time=5
 
 !includedir /etc/mysql/conf.d/
+!includedir /etc/mysql/mariadb.conf.d/

+ 1 - 0
install/deb/mysql/my-small.cnf

@@ -39,3 +39,4 @@ interactive_timeout=50
 long_query_time=5
 
 !includedir /etc/mysql/conf.d/
+!includedir /etc/mysql/mariadb.conf.d/

+ 9 - 4
install/hst-install-debian.sh

@@ -23,8 +23,8 @@ HESTIA_INSTALL_DIR="$HESTIA/install/deb"
 VERBOSE='no'
 
 # Define software versions
-HESTIA_INSTALL_VER='1.3.0~rc'
-pma_v='5.0.2'
+HESTIA_INSTALL_VER='1.3.0'
+pma_v='5.0.4'
 multiphp_v=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4")
 fpm_v="7.4"
 mariadb_v="10.5"
@@ -931,8 +931,13 @@ fi
 
 # Restrict access to /proc fs
 # - Prevent unpriv users from seeing each other running processes
-mount -o remount,defaults,hidepid=2 /proc
-echo "@reboot root sleep 5 && mount -o remount,defaults,hidepid=2 /proc" > /etc/cron.d/hestia-proc
+mount -o remount,defaults,hidepid=2 /proc > /dev/null 2>&1
+if [ $? -ne 0 ]; then
+    echo "Info: Cannot remount /proc (LXC containers require additional perm added to host apparmor profile)"
+else
+    echo "@reboot root sleep 5 && mount -o remount,defaults,hidepid=2 /proc" > /etc/cron.d/hestia-proc
+fi
+
 
 #----------------------------------------------------------#
 #                     Configure Hestia                     #

+ 8 - 4
install/hst-install-ubuntu.sh

@@ -23,8 +23,8 @@ HESTIA_INSTALL_DIR="$HESTIA/install/deb"
 VERBOSE='no'
 
 # Define software versions
-HESTIA_INSTALL_VER='1.3.0~rc'
-pma_v='5.0.2'
+HESTIA_INSTALL_VER='1.3.0'
+pma_v='5.0.4'
 multiphp_v=("5.6" "7.0" "7.1" "7.2" "7.3" "7.4")
 fpm_v="7.4"
 mariadb_v="10.5"
@@ -988,8 +988,12 @@ fi
 
 # Restrict access to /proc fs
 # - Prevent unpriv users from seeing each other running processes
-mount -o remount,defaults,hidepid=2 /proc
-echo "@reboot root sleep 5 && mount -o remount,defaults,hidepid=2 /proc" > /etc/cron.d/hestia-proc
+mount -o remount,defaults,hidepid=2 /proc > /dev/null 2>&1
+if [ $? -ne 0 ]; then
+    echo "Info: Cannot remount /proc (LXC containers require additional perm added to host apparmor profile)"
+else
+    echo "@reboot root sleep 5 && mount -o remount,defaults,hidepid=2 /proc" > /etc/cron.d/hestia-proc
+fi
 
 
 #----------------------------------------------------------#

+ 1 - 1
install/upgrade/manual/upgrade_mariadb.sh

@@ -53,6 +53,6 @@ apt remove -qq mariadb-server -y  > /dev/null 2>&1
 
 # Install new version and run upgrader
 echo "Installing new MariaDB Server, start and run upgrade..."
-apt install -qq mariadb-server -y  > /dev/null 2>&1
+apt install -qq mariadb-server -y 
 systemctl start mysql > /dev/null 2>&1
 mysql_upgrade

+ 1 - 1
install/upgrade/upgrade.conf

@@ -43,4 +43,4 @@ UPGRADE_RESTART_SERVICES='true'
 #######################################################################################
 
 # Set version of phpMyAdmin to install during upgrade if not already installed
-pma_v='5.0.2'
+pma_v='5.0.4'

+ 24 - 18
install/upgrade/versions/1.3.0.sh

@@ -18,7 +18,7 @@ done
 
 # Add default SSL Certificate config when ip is visited
 if [ "$PROXY_SYSTEM" = "nginx" ]; then
-    echo "[ * ] Update IP.conf"
+    echo "[ * ] Updating nginx configuration..."
     while read IP; do
         rm /etc/nginx/conf.d/$IP.conf
         cat $WEBTPL/$PROXY_SYSTEM/proxy_ip.tpl |\
@@ -31,6 +31,7 @@ if [ "$PROXY_SYSTEM" = "nginx" ]; then
 fi
 
 if [ "$FTP_SYSTEM" == "proftpd" ]; then
+    echo "[ * ] Updating ProFTPd TLS configuration..."
     if [ -e  /etc/proftpd/proftpd.conf ]; then
         rm /etc/proftpd/proftpd.conf
     fi
@@ -43,28 +44,33 @@ if [ "$FTP_SYSTEM" == "proftpd" ]; then
     
 fi
 
-# Remove old lanugage files.
-if [ -e $HESTIA/web/inc/i18n/en.php ]; then 
-    echo "[ * ] Clean up old language files"
-    rm -fr $HESTIA/web/inc/i18n
-fi
-
+# Update exim configuration
 if [ -e "/etc/exim4/exim4.conf.template" ]; then
     echo "[ * ] Updating exim4 configuration..."
     sed -i 's/${if match {${lc:$mime_filename}}{\\N(\\.ade|\\.adp|\\.bat|\\.chm|\\.cmd|\\.com|\\.cpl|\\.exe|\\.hta|\\.ins|\\.isp|\\.jse|\\.lib|\\.lnk|\\.mde|\\.msc|\\.msp|\\.mst|\\.pif|\\.scr|\\.sct|\\.shb|\\.sys|\\.vb|\\.vbe|\\.vbs|\\.vxd|\\.wsc|\\.wsf|\\.wsh)$\\N}{1}{0}}/${if match {${lc:$mime_filename}}{\\N(\\.ace|\\.ade|\\.adp|\\.app|\\.arj|\\.asp|\\.aspx|\\.asx|\\.bas|\\.bat|\\.cab|\\.cer|\\.chm|\\.cmd|\\.cnt|\\.com|\\.cpl|\\.crt|\\.csh|\\.der|\\.diagcab|\\.dll|\\.efi|\\.exe|\\.fla|\\.fon|\\.fxp|\\.gadget|\\.grp|\\.hlp|\\.hpj|\\.hta|\\.htc|\\.img|\\.inf|\\.ins|\\.iso|\\.isp|\\.its|\\.jar|\\.jnlp|\\.js|\\.jse|\\.ksh|\\.lib|\\.lnk|\\.mad|\\.maf|\\.mag|\\.mam|\\.maq|\\.mar|\\.mas|\\.mat|\\.mau|\\.mav|\\.maw|\\.mcf|\\.mda|\\.mdb|\\.mde|\\.mdt|\\.mdw|\\.mdz|\\.msc|\\.msh|\\.msh1|\\.msh1xml|\\.msh2|\\.msh2xml|\\.mshxml|\\.msi|\\.msp|\\.mst|\\.msu|\\.ops|\\.osd|\\.pcd|\\.pif|\\.pl|\\.plg|\\.prf|\\.prg|\\.printerexport|\\.ps1|\\.ps1xml|\\.ps2|\\.ps2xml|\\.psc1|\\.psc2|\\.psd1|\\.psdm1|\\.pst|\\.py|\\.pyc|\\.pyo|\\.pyw|\\.pyz|\\.pyzw|\\.reg|\\.scf|\\.scr|\\.sct|\\.sfx|\\.shb|\\.shs|\\.swf|\\.sys|\\.theme|\\.tmp|\\.ttf|\\.url|\\.vb|\\.vba|\\.vbe|\\.vbp|\\.vbs|\\.vhd|\\.vhdx|\\.vsmacros|\\.vsw|\\.vxd|\\.webpnp|\\.website|\\.wim|\\.ws|\\.wsc|\\.wsf|\\.wsh|\\.xbap|\\.xll|\\.xnk)$\\N}{1}{0}}/g' /etc/exim4/exim4.conf.template
 fi
 
-# Change backup mode to zstd.
- echo "[ * ] Enable new backup compression zstd as default."
- $BIN/v-change-sys-config-value "BACKUP_MODE" "zstd"
- 
-# Set var LOGIN_STYLE hestia.conf
- echo "[ * ] Set var LOGIN_STYLE hestia.conf"
- $BIN/v-change-sys-config-value "LOGIN_STYLE" "default"
-
 # Restrict access to /proc fs
 if [ ! -e "/etc/cron.d/hestia-proc" ]; then
-    echo "[ * ] Restrict access to /proc fs"
-    echo "@reboot root sleep 5 && mount -o remount,defaults,hidepid=2 /proc" > /etc/cron.d/hestia-proc
-    mount -o remount,defaults,hidepid=2 /proc
+    echo "[ * ] Restricting access to /proc fs..."
+    mount -o remount,defaults,hidepid=2 /proc > /dev/null 2>&1
+    if [ $? -ne 0 ]; then
+        echo "WARNING: Cannot remount /proc (LXC containers require additional permissions be added to host apparmor profile)"
+    else
+        echo "@reboot root sleep 5 && mount -o remount,defaults,hidepid=2 /proc" > /etc/cron.d/hestia-proc
+    fi
 fi
+
+# Change backup mode to zstd.
+echo "[ * ] Setting zstd backup compression type as default..."
+$BIN/v-change-sys-config-value "BACKUP_MODE" "zstd"
+ 
+# Set LOGIN_STYLE variable in hestia.conf
+echo "[ * ] Updating configuration file: hestia.conf..."
+$BIN/v-change-sys-config-value "LOGIN_STYLE" "default"
+
+# Remove old lanugage files.
+if [ -e $HESTIA/web/inc/i18n/en.php ]; then 
+    echo "[ * ] Performing language library clean-up..."
+    rm -fr $HESTIA/web/inc/i18n
+fi

+ 1 - 1
src/deb/hestia/control

@@ -1,7 +1,7 @@
 Source: hestia
 Package: hestia
 Priority: optional
-Version: 1.3.0~rc
+Version: 1.3.0
 Section: admin
 Maintainer: HestiaCP <info@hestiacp.com>
 Homepage: https://www.hestiacp.com

+ 1 - 1
src/deb/nginx/control

@@ -1,7 +1,7 @@
 Source: hestia-nginx
 Package: hestia-nginx
 Priority: optional
-Version: 1.19.2~alpha
+Version: 1.19.2
 Section: admin
 Maintainer: HestiaCP <info@hestiacp.com>
 Homepage: https://www.hestiacp.com

+ 1 - 1
src/deb/php/control

@@ -1,7 +1,7 @@
 Source: hestia-php
 Package: hestia-php
 Priority: optional
-Version: 7.4.10~alpha
+Version: 7.4.10
 Section: admin
 Maintainer: HestaCP <info@hestiacp.com>
 Homepage: https://www.hestiacp.com

BIN
web/locale/en/LC_MESSAGES/hestiacp.mo


+ 2 - 2
web/locale/en/LC_MESSAGES/hestiacp.po

@@ -2,7 +2,7 @@
 # This file is distributed under the same license as the Hestia CP package.
 msgid ""
 msgstr ""
-"PO-Revision-Date: 2020-10-02 20:36:38+0000\n"
+"PO-Revision-Date: 2020-10-24 13:07:07+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -2155,7 +2155,7 @@ msgstr "Database"
 #: ../../web/templates/admin/add_user.html:142
 #: ../../web/templates/user/list_db.html:37
 msgid "User"
-msgstr "Username"
+msgstr "User"
 
 #: ../../web/templates/admin/setup_webapp.html:67
 #: ../../web/templates/admin/edit_user.html:73

BIN
web/locale/fr/LC_MESSAGES/hestiacp.mo


+ 69 - 69
web/locale/fr/LC_MESSAGES/hestiacp.po

@@ -2,7 +2,7 @@
 # This file is distributed under the same license as the Hestia CP package.
 msgid ""
 msgstr ""
-"PO-Revision-Date: 2020-09-03 06:08:23+0000\n"
+"PO-Revision-Date: 2020-10-24 17:13:11+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -13,39 +13,39 @@ msgstr ""
 
 #: ../../web/templates/admin/edit_server.html:857
 msgid "Login screen style"
-msgstr ""
+msgstr "Style de l'écran de connexion"
 
 #: ../../web/templates/admin/edit_server.html:848
 msgid "Security"
-msgstr ""
+msgstr "Sécurité"
 
 #: ../../web/templates/admin/edit_server.html:864
 msgid "Old Style"
-msgstr ""
+msgstr "Ancien style"
 
 #: ../../web/templates/admin/edit_server.html:618
 msgid "Compression"
-msgstr ""
+msgstr "Compression"
 
 #: ../../web/add/webapp/index.php:62
 msgid "%s installer missing"
-msgstr ""
+msgstr "%s installateur manquant"
 
 #: ../../web/add/webapp/index.php:82
 msgid "%s App was installed succesfully!"
-msgstr ""
+msgstr "%s L'application a été installée avec succès !"
 
 #: ../../web/update/hestia/index.php:22
 msgid "Error: %s update failed"
-msgstr ""
+msgstr "Erreur : %s échec de la mise à jour"
 
 #: ../../web/restart/service/index.php:25
 msgid "Restart \"%s\" failed"
-msgstr ""
+msgstr "Les \"%s\" de redémarrage ont échoué"
 
 #: ../../web/start/service/index.php:25
 msgid "Start \"%s\" failed"
-msgstr ""
+msgstr "Les \"%s\" de départ ont échoué"
 
 #: ../../web/add/user/index.php:101
 msgid "ACCOUNT_READY"
@@ -57,38 +57,38 @@ msgstr ""
 "Mot de Passe : %s\n"
 "\n"
 "--\n"
-"Hestia Control Panel"
+"Panneau de contrôle Hestia"
 
 #: ../../web/download/backup/index.php:24
 msgid "Error: Hestia did not return any output."
-msgstr ""
+msgstr "Erreur : Hestia n'a renvoyé aucun résultat."
 
 #: ../../web/templates/admin/add_web.html:200
 #: ../../web/templates/admin/edit_web.html:248
 #: ../../web/templates/user/edit_web.html:261
 msgid "Custom document root"
-msgstr ""
+msgstr "Personnalisé la racine du document"
 
 #: ../../web/templates/admin/add_web.html:208
 #: ../../web/templates/admin/edit_web.html:256
 #: ../../web/templates/user/edit_web.html:269
 msgid "Point to"
-msgstr ""
+msgstr "Pointer vers"
 
 #: ../../web/templates/admin/panel.html:15
 #: ../../web/templates/user/panel.html:15
 msgid "Files"
-msgstr ""
+msgstr "Fichiers"
 
 #: ../../web/templates/admin/edit_user.html:145
 #: ../../web/templates/admin/add_user.html:136
 msgid "Role"
-msgstr ""
+msgstr "Rôle"
 
 #: ../../web/templates/admin/edit_user.html:152
 #: ../../web/templates/admin/add_user.html:143
 msgid "Administrator"
-msgstr ""
+msgstr "Administrateur"
 
 #: ../../web/templates/admin/list_web.html:70
 #: ../../web/templates/admin/list_dns.html:71
@@ -115,11 +115,11 @@ msgstr "Êtes-vous sûr de vouloir suspendre le domaine %s ?"
 #: ../../web/templates/user/edit_web.html:482
 #: ../../web/templates/user/edit_web.html:558
 msgid "Prefix %s will be added to username automatically"
-msgstr ""
+msgstr "Le préfixe %s sera ajouté automatiquement au nom d'utilisateur"
 
 #: ../../web/templates/admin/edit_server.html:189
 msgid "Options"
-msgstr ""
+msgstr "Options"
 
 #: ../../web/templates/admin/edit_server.html:194
 msgid "SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL"
@@ -131,7 +131,7 @@ msgstr "Envoyer le journal d'installation de la mise à jour par e-mail"
 
 #: ../../web/templates/admin/edit_server.html:885
 msgid "Filemanager"
-msgstr ""
+msgstr "Gestionnaire de fichiers"
 
 #: ../../web/templates/admin/list_cron.html:75
 #: ../../web/templates/user/list_cron.html:75
@@ -145,11 +145,11 @@ msgstr "Êtes-vous sûr de vouloir suspendre la tâche cron ?"
 
 #: ../../web/templates/admin/list_services.html:148
 msgid "Are you sure you want to start service"
-msgstr ""
+msgstr "Êtes-vous sûr de vouloir commencer le service"
 
 #: ../../web/templates/admin/list_weblog.html:27
 msgid "Access Log"
-msgstr ""
+msgstr "Journal d'accès"
 
 #: ../../web/templates/admin/list_user.html:88
 msgid "UNSUSPEND_USER_CONFIRMATION"
@@ -189,7 +189,7 @@ msgstr "Êtes-vous sûr de vouloir suspendre %s ?"
 
 #: ../../web/stop/service/index.php:27
 msgid "Stop \"%s\" failed"
-msgstr ""
+msgstr "L'arrêt des \"%s\" a échoué"
 
 #: ../../web/templates/admin/edit_user.html:84
 #: ../../web/templates/admin/add_db.html:97
@@ -199,7 +199,7 @@ msgstr ""
 #: ../../web/templates/admin/add_user.html:77
 #: ../../web/templates/user/edit_user.html:82
 msgid "Your password must have at least"
-msgstr ""
+msgstr "Votre mot de passe doit avoir au moins"
 
 #: ../../web/templates/admin/edit_user.html:86
 #: ../../web/templates/admin/add_db.html:99
@@ -209,7 +209,7 @@ msgstr ""
 #: ../../web/templates/admin/add_user.html:79
 #: ../../web/templates/user/edit_user.html:84
 msgid "8 characters long"
-msgstr ""
+msgstr "8 caractères de long"
 
 #: ../../web/templates/admin/edit_user.html:87
 #: ../../web/templates/admin/add_db.html:100
@@ -219,7 +219,7 @@ msgstr ""
 #: ../../web/templates/admin/add_user.html:80
 #: ../../web/templates/user/edit_user.html:85
 msgid "1 uppercase & 1 lowercase character"
-msgstr ""
+msgstr "1 majuscule et 1 caractère minuscule"
 
 #: ../../web/templates/admin/edit_user.html:88
 #: ../../web/templates/admin/add_db.html:101
@@ -229,15 +229,15 @@ msgstr ""
 #: ../../web/templates/admin/add_user.html:81
 #: ../../web/templates/user/edit_user.html:86
 msgid "1 number"
-msgstr ""
+msgstr "1 numéro"
 
 #: ../../web/add/user/index.php:48 ../../web/add/db/index.php:45
 msgid "Password does not match the minimum requirements"
-msgstr ""
+msgstr "Le mot de passe ne correspond pas aux exigences minimales"
 
 #: ../../web/edit/user/index.php:203
 msgid "Please enter a valid name"
-msgstr ""
+msgstr "Merci d'entrer un nom valide"
 
 #: ../../web/templates/login_1.html:18
 msgid "Welcome"
@@ -245,19 +245,19 @@ msgstr "Bienvenue"
 
 #: ../../web/templates/login_1.html:42 ../../web/templates/login_2.html:40
 msgid "Login"
-msgstr ""
+msgstr "Se connecter"
 
 #: ../../web/templates/admin/list_services.html:61
 msgid "Production release"
-msgstr ""
+msgstr "Production"
 
 #: ../../web/templates/admin/add_user.html:107
 msgid "Send welcome email"
-msgstr ""
+msgstr "Envoyer un courriel de bienvenue"
 
 #: ../../web/templates/admin/panel.html:2
 msgid "Top"
-msgstr ""
+msgstr "Haut"
 
 #: ../../web/templates/admin/panel.html:33
 msgid "Server"
@@ -269,7 +269,7 @@ msgstr "Submit an issue report"
 
 #: ../../web/templates/login.html:35 ../../web/templates/login_a.html:45
 msgid "Next"
-msgstr ""
+msgstr "Suivant"
 
 #: ../../web/templates/login_2.html:16
 msgid "2 Factor Authentication"
@@ -1005,7 +1005,7 @@ msgstr "Êtes-vous sûr de vouloir supprimer l'adresse IP %s ?"
 
 #: ../../web/templates/admin/list_firewall_banlist.html:89
 msgid "There are currently no banned IP addresses."
-msgstr ""
+msgstr "Il n'y a actuellement aucune adresse IP interdite."
 
 #: ../../web/templates/admin/list_firewall_banlist.html:92
 msgid "1 banned IP address"
@@ -1025,7 +1025,7 @@ msgstr "Ajout d'une base de données"
 
 #: ../../web/templates/admin/add_db.html:55
 msgid "Prefix %s will be automatically added to database name and database user"
-msgstr ""
+msgstr "Le préfixe %s sera automatiquement ajouté au nom de la base de données et de son utilisateur"
 
 #: ../../web/templates/admin/add_db.html:74
 #: ../../web/templates/admin/edit_db.html:72
@@ -1150,7 +1150,7 @@ msgstr "alias"
 #: ../../web/templates/admin/panel.html:75
 #: ../../web/templates/user/panel.html:61
 msgid "zones"
-msgstr ""
+msgstr "zones"
 
 #: ../../web/templates/admin/panel.html:90
 #: ../../web/templates/user/panel.html:76
@@ -1423,7 +1423,7 @@ msgstr "Nouvelle liste IP"
 
 #: ../../web/templates/admin/add_firewall_ipset.html:66
 msgid "url, script or file"
-msgstr ""
+msgstr "URL, script ou fichier"
 
 #: ../../web/templates/admin/add_firewall_ipset.html:85
 msgid "ip v4"
@@ -1471,7 +1471,7 @@ msgstr "AccessLog"
 
 #: ../../web/templates/admin/list_weblog.html:28
 msgid "Error Log"
-msgstr ""
+msgstr "Journal des erreurs"
 
 #: ../../web/templates/admin/list_server_info.html:38
 #: ../../web/templates/admin/list_weblog.html:33
@@ -1490,7 +1490,7 @@ msgstr "Installer"
 
 #: ../../web/templates/admin/setup_webapp.html:43
 msgid "Data loss warning!<br>Your web domain already has files uploaded, the installer will overwrite your files and/or the installation might fail.<br/><br/> Please use the installer only for empty web domains"
-msgstr ""
+msgstr "Avertissement de perte de données ! <br> Votre domaine Web a déjà des fichiers téléchargés, le programme d'installation écrasera vos fichiers et/ou l'installation pourrait échouer. <br/> <br/> Veuillez utiliser le programme d'installation uniquement pour les domaines Web vides."
 
 #: ../../web/templates/admin/add_ip.html:38
 msgid "Adding IP address"
@@ -1542,28 +1542,28 @@ msgstr "restaurer"
 
 #: ../../web/templates/admin/list_backup_detail.html:45
 msgid "Details"
-msgstr ""
+msgstr "Détails"
 
 #: ../../web/templates/admin/list_backup_detail.html:46
 #: ../../web/templates/admin/list_backup_detail.html:78
 msgid "Restore"
-msgstr ""
+msgstr "Restaurer"
 
 #: ../../web/templates/admin/list_backup_detail.html:67
 msgid "Web domain"
-msgstr ""
+msgstr "Domain web"
 
 #: ../../web/templates/admin/list_backup_detail.html:105
 msgid "Mail domain"
-msgstr ""
+msgstr "Domain mail"
 
 #: ../../web/templates/admin/list_backup_detail.html:143
 msgid "DNS domain"
-msgstr ""
+msgstr "DNS domain"
 
 #: ../../web/templates/admin/list_backup_detail.html:219
 msgid "Cron Records"
-msgstr ""
+msgstr "Enregistrements cron"
 
 #: ../../web/templates/admin/panel.html:76
 #: ../../web/templates/admin/list_backup_detail.html:222
@@ -1871,7 +1871,7 @@ msgstr "Mois"
 #: ../../web/templates/user/list_user.html:73
 #: ../../web/templates/user/list_stats.html:30
 msgid "IPs"
-msgstr ""
+msgstr "IPs"
 
 #: ../../web/templates/admin/list_web.html:10
 #: ../../web/templates/admin/list_web.html:57
@@ -2107,17 +2107,17 @@ msgstr "Êtes-vous sûr de vouloir supprimer l'enregistrement %s ?"
 #: ../../web/templates/admin/edit_server.html:863
 #: ../../web/templates/admin/list_dns_rec.html:88
 msgid "Default"
-msgstr ""
+msgstr "Défaut"
 
 #: ../../web/templates/admin/list_dns_rec.html:105
 #: ../../web/templates/user/list_dns_rec.html:101
 msgid "1 DNS record"
-msgstr ""
+msgstr "1 DNS enregistré"
 
 #: ../../web/templates/admin/list_dns_rec.html:107
 #: ../../web/templates/user/list_dns_rec.html:103
 msgid "%s DNS records"
-msgstr ""
+msgstr "%s DNS enregistrés"
 
 #: ../../web/templates/admin/edit_backup_exclusions.html:40
 #: ../../web/templates/admin/list_backup_exclusions.html:5
@@ -2444,7 +2444,7 @@ msgstr "Activer la sécurité de transport HTTP stricte (HSTS) <a href=\"https:/
 #: ../../web/templates/admin/edit_web.html:328
 #: ../../web/templates/user/edit_web.html:342
 msgid "Home Directory"
-msgstr ""
+msgstr "Home Directory"
 
 #: ../../web/templates/admin/add_web.html:296
 #: ../../web/templates/admin/edit_web.html:363
@@ -2916,7 +2916,7 @@ msgstr "La tâche a bien été ajoutée à la liste. Vous recevrez un mail de co
 #: ../../web/schedule/restore/index.php:43
 #: ../../web/schedule/backup/index.php:21
 msgid "Error: hestia did not return any output."
-msgstr ""
+msgstr "Erreur : hestia n'a renvoyé aucun résultat."
 
 #: ../../web/schedule/backup/index.php:25
 msgid "BACKUP_EXISTS"
@@ -3013,15 +3013,15 @@ msgstr ""
 
 #: ../../web/reset/index.php:45
 msgid "Invalid host domain"
-msgstr ""
+msgstr "Le domaine hôte n'est pas valide"
 
 #: ../../web/reset/index.php:74
 msgid "An internal error occurred"
-msgstr ""
+msgstr "Une erreur interne a eu lieu"
 
 #: ../../web/reset/index.php:82
 msgid "Code has been expired"
-msgstr ""
+msgstr "Le code a expiré"
 
 #: ../../web/reset/index.php:86 ../../web/reset/index.php:90
 msgid "Invalid username or code"
@@ -3118,7 +3118,7 @@ msgstr "utilisateur statistiques"
 
 #: ../../web/edit/web/index.php:599
 msgid "stats user"
-msgstr ""
+msgstr "statistiques utilisateur"
 
 #: ../../web/add/web/index.php:328 ../../web/edit/web/index.php:661
 #: ../../web/edit/web/index.php:735
@@ -3154,19 +3154,19 @@ msgstr "paquet"
 
 #: ../../web/add/package/index.php:26 ../../web/edit/package/index.php:102
 msgid "web template"
-msgstr ""
+msgstr "web template"
 
 #: ../../web/add/package/index.php:28 ../../web/edit/package/index.php:104
 msgid "backend template"
-msgstr ""
+msgstr "modèle de backend"
 
 #: ../../web/add/package/index.php:31 ../../web/edit/package/index.php:107
 msgid "proxy template"
-msgstr ""
+msgstr "proxy template"
 
 #: ../../web/add/package/index.php:33 ../../web/edit/package/index.php:109
 msgid "dns template"
-msgstr ""
+msgstr "dns template"
 
 #: ../../web/add/package/index.php:34 ../../web/edit/package/index.php:110
 msgid "shell"
@@ -3182,7 +3182,7 @@ msgstr "alias web"
 
 #: ../../web/add/package/index.php:37 ../../web/edit/package/index.php:113
 msgid "dns domains"
-msgstr ""
+msgstr "dns domains"
 
 #: ../../web/add/package/index.php:38 ../../web/edit/package/index.php:114
 msgid "dns records"
@@ -3222,7 +3222,7 @@ msgstr "quota"
 
 #: ../../web/add/package/index.php:45 ../../web/edit/package/index.php:121
 msgid "bandwidth"
-msgstr ""
+msgstr "Bande Passante"
 
 #: ../../web/add/package/index.php:49 ../../web/edit/package/index.php:125
 msgid "ns1"
@@ -3312,7 +3312,7 @@ msgstr "La clé SSH existe déjà"
 
 #: ../../web/add/key/index.php:57
 msgid "SSH KEY created"
-msgstr ""
+msgstr "Clé SSH créée"
 
 #: ../../web/add/firewall/ipset/index.php:25
 #: ../../web/templates/admin/list_search.html:9
@@ -3345,15 +3345,15 @@ msgstr "Liste IP créée avec succès"
 
 #: ../../web/add/firewall/index.php:42
 msgid "action"
-msgstr ""
+msgstr "action"
 
 #: ../../web/add/firewall/index.php:43
 msgid "protocol"
-msgstr ""
+msgstr "protocol"
 
 #: ../../web/add/firewall/index.php:44
 msgid "port"
-msgstr ""
+msgstr "port"
 
 #: ../../web/add/ip/index.php:25 ../../web/add/firewall/banlist/index.php:26
 #: ../../web/add/firewall/index.php:45
@@ -3366,7 +3366,7 @@ msgstr "Règle a été créée avec succès."
 
 #: ../../web/add/firewall/banlist/index.php:25
 msgid "banlist"
-msgstr ""
+msgstr "banlist"
 
 #: ../../web/add/firewall/banlist/index.php:51
 msgid "BANLIST_CREATED_OK"
@@ -3386,7 +3386,7 @@ msgstr "type"
 
 #: ../../web/add/db/index.php:23
 msgid "host"
-msgstr ""
+msgstr "host"
 
 #: ../../web/add/db/index.php:24
 msgid "charset"
@@ -3805,7 +3805,7 @@ msgstr "Ville"
 
 #: ../../web/templates/admin/generate_ssl.html:113
 msgid "Ok"
-msgstr ""
+msgstr "Ok"
 
 #: ../../web/templates/admin/list_firewall_ipset.html:5
 msgid "Add IP list"

BIN
web/locale/zh-cn/LC_MESSAGES/hestiacp.mo


+ 21 - 10
web/locale/zh-cn/LC_MESSAGES/hestiacp.po

@@ -2,7 +2,7 @@
 # This file is distributed under the same license as the Hestia CP package.
 msgid ""
 msgstr ""
-"PO-Revision-Date: 2020-10-04 18:45:59+0000\n"
+"PO-Revision-Date: 2020-10-26 06:34:52+0000\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -1252,12 +1252,12 @@ msgstr "每日"
 #: ../../web/templates/admin/add_cron.html:94
 #: ../../web/templates/admin/edit_cron.html:91
 msgid "every odd day"
-msgstr "每个奇数日"
+msgstr "奇数日"
 
 #: ../../web/templates/admin/add_cron.html:95
 #: ../../web/templates/admin/edit_cron.html:92
 msgid "every even day"
-msgstr "每个偶数日"
+msgstr "偶数日"
 
 #: ../../web/templates/admin/list_cron.html:62
 #: ../../web/templates/admin/add_cron.html:103
@@ -1320,17 +1320,17 @@ msgstr "周日 "
 #: ../../web/templates/admin/add_cron.html:236
 #: ../../web/templates/admin/edit_cron.html:230
 msgid "every month"
-msgstr "每月"
+msgstr "每月"
 
 #: ../../web/templates/admin/add_cron.html:237
 #: ../../web/templates/admin/edit_cron.html:231
 msgid "every odd month"
-msgstr "每个奇数月"
+msgstr "奇数月"
 
 #: ../../web/templates/admin/add_cron.html:238
 #: ../../web/templates/admin/edit_cron.html:232
 msgid "every even month"
-msgstr "每个偶数月"
+msgstr "偶数月"
 
 #: ../../web/templates/admin/add_cron.html:241
 #: ../../web/templates/admin/edit_cron.html:235
@@ -1427,11 +1427,11 @@ msgstr "URL, 脚本或文件"
 
 #: ../../web/templates/admin/add_firewall_ipset.html:85
 msgid "ip v4"
-msgstr "ip v4"
+msgstr "IPv4"
 
 #: ../../web/templates/admin/add_firewall_ipset.html:86
 msgid "ip v6"
-msgstr "ip v6"
+msgstr "IPv6"
 
 #: ../../web/templates/admin/add_firewall_ipset.html:166
 msgid "BLACKLIST"
@@ -2112,7 +2112,7 @@ msgstr "默认"
 #: ../../web/templates/admin/list_dns_rec.html:105
 #: ../../web/templates/user/list_dns_rec.html:101
 msgid "1 DNS record"
-msgstr "1 DNS区域"
+msgstr "1 条DNS记录"
 
 #: ../../web/templates/admin/list_dns_rec.html:107
 #: ../../web/templates/user/list_dns_rec.html:103
@@ -2999,7 +2999,18 @@ msgstr "您好,"
 
 #: ../../web/reset/index.php:40
 msgid "PASSWORD_RESET_REQUEST"
-msgstr "重置密码请点击链接:\\nhttps://%s/reset/?action=confirm&user=%s&code=%s\\n\\n或者您可以到 https://%s/reset/?action=code&user=%s\\n输入重置代码:\\n%s\\n\\n如果您没有要求重置密码,请忽略此邮件\\n\\n--\\nHestia 管理系统\\n"
+msgstr ""
+"重置密码请点击链接:\n"
+"https://%s/reset/?action=confirm&user=%s&code=%s\n"
+"\n"
+"或者您可以到 https://%s/reset/?action=code&user=%s\n"
+"输入重置代码:\n"
+"%s\n"
+"\n"
+"如果您没有要求重置密码,请忽略此邮件\n"
+"\n"
+"--\n"
+"Hestia 管理系统"
 
 #: ../../web/reset/index.php:45
 msgid "Invalid host domain"

BIN
web/locale/zh-tw/LC_MESSAGES/hestiacp.mo


Разлика између датотеке није приказан због своје велике величине
+ 149 - 149
web/locale/zh-tw/LC_MESSAGES/hestiacp.po


+ 9 - 5
web/reset/index.php

@@ -20,11 +20,15 @@ if ((!empty($_POST['user'])) && (empty($_POST['code']))) {
         $data = json_decode(implode('', $output), true);
         if($email == $data[$user]['CONTACT']){
             //genrate new rkey
-            exec ("/usr/bin/sudo /usr/local/hestia/bin/v-change-user-rkey ".$v_user."", $output, $return_var);
+            $rkey = substr( password_hash( rand(0,10), PASSWORD_DEFAULT ), 5, 12 );
+            $hash = password_hash($rkey, PASSWORD_DEFAULT);
+            $v_rkey = tempnam("/tmp","vst");
+            $fp = fopen($v_rkey, "w");
+            fwrite($fp, $hash."\n");
+            fclose($fp);
+            exec ("/usr/bin/sudo /usr/local/hestia/bin/v-change-user-rkey ".$v_user." ".$v_rkey."", $output, $return_var);
             unset($output);
-            exec ($cmd." ".$v_user." json", $output, $return_var);
-            $data = json_decode(implode('', $output), true);
-            $rkey = $data[$user]['RKEY'];
+            unlink($v_rkey);
             $name = $data[$user]['NAME'];
             $contact = $data[$user]['CONTACT'];
             $to = $data[$user]['CONTACT'];
@@ -58,7 +62,7 @@ if ((!empty($_POST['user'])) && (!empty($_POST['code'])) && (!empty($_POST['pass
         if ( $return_var == 0 ) {
             $data = json_decode(implode('', $output), true);
             $rkey = $data[$user]['RKEY'];
-            if (hash_equals($rkey, $_POST['code'])) {
+            if (password_verify($_POST['code'], $rkey)) {
                 unset($output);
                 exec("/usr/bin/sudo /usr/local/hestia/bin/v-get-user-value ".$v_user." RKEYEXP", $output,$return_var);
                 if($output[0] > time() - 900){

+ 1 - 1
web/restart/system/index.php

@@ -27,7 +27,7 @@ if (isset($_GET['system_reset_token']) && is_numeric($_GET['system_reset_token']
     if ($_SESSION['user'] == 'admin') {
         if (!empty($_GET['hostname'])) {
             touch($reset_token_file);
-            $_SESSION['error_msg'] = __('The system is going down for reboot NOW!');
+            $_SESSION['error_msg'] = _('The system is going down for reboot NOW!');
             exec(HESTIA_CMD . "v-restart-system yes", $output, $return_var);
         }
         unset($output);

Неке датотеке нису приказане због велике количине промена