Procházet zdrojové kódy

Merge branch 'feature/user-roles' into main

Kristan Kenney před 4 roky
rodič
revize
f5e82b73be
100 změnil soubory, kde provedl 360 přidání a 116 odebrání
  1. 1 1
      bin/v-add-cron-hestia-autoupdate
  2. 2 2
      bin/v-add-cron-job
  3. 1 1
      bin/v-add-cron-reports
  4. 1 1
      bin/v-add-database
  5. 1 0
      bin/v-add-database-host
  6. 1 1
      bin/v-add-database-temp-user
  7. 5 1
      bin/v-add-dns-domain
  8. 4 1
      bin/v-add-dns-record
  9. 1 1
      bin/v-add-fastcgi-cache
  10. 1 0
      bin/v-add-firewall-ban
  11. 4 0
      bin/v-add-firewall-chain
  12. 1 0
      bin/v-add-firewall-ipset
  13. 6 0
      bin/v-add-firewall-rule
  14. 1 1
      bin/v-add-mail-account
  15. 1 1
      bin/v-add-mail-account-alias
  16. 1 1
      bin/v-add-mail-account-autoreply
  17. 1 1
      bin/v-add-mail-account-forward
  18. 1 1
      bin/v-add-mail-account-fwd-only
  19. 8 4
      bin/v-add-mail-domain
  20. 1 1
      bin/v-add-mail-domain-antispam
  21. 1 1
      bin/v-add-mail-domain-antivirus
  22. 1 1
      bin/v-add-mail-domain-catchall
  23. 3 3
      bin/v-add-mail-domain-dkim
  24. 1 1
      bin/v-add-mail-domain-smtp-relay
  25. 1 1
      bin/v-add-mail-domain-ssl
  26. 13 4
      bin/v-add-mail-domain-webmail
  27. 2 5
      bin/v-add-sys-filemanager
  28. 1 1
      bin/v-add-sys-ip
  29. 1 2
      bin/v-add-sys-pma-sso
  30. 1 0
      bin/v-add-sys-quota
  31. 5 3
      bin/v-add-sys-rainloop
  32. 5 3
      bin/v-add-sys-roundcube
  33. 1 1
      bin/v-add-sys-smtp-relay
  34. 7 1
      bin/v-add-user
  35. 1 1
      bin/v-add-user-composer
  36. 2 2
      bin/v-add-user-package
  37. 1 1
      bin/v-add-user-ssh-key
  38. 1 1
      bin/v-add-user-wp-cli
  39. 5 1
      bin/v-add-web-domain
  40. 1 2
      bin/v-add-web-domain-alias
  41. 1 1
      bin/v-add-web-domain-allow-users
  42. 1 6
      bin/v-add-web-domain-backend
  43. 1 1
      bin/v-add-web-domain-ftp
  44. 1 1
      bin/v-add-web-domain-httpauth
  45. 1 1
      bin/v-add-web-domain-proxy
  46. 1 1
      bin/v-add-web-domain-redirect
  47. 1 1
      bin/v-add-web-domain-ssl
  48. 4 1
      bin/v-add-web-domain-ssl-force
  49. 4 1
      bin/v-add-web-domain-ssl-hsts
  50. 0 1
      bin/v-add-web-domain-ssl-preset
  51. 1 1
      bin/v-add-web-domain-stats
  52. 1 1
      bin/v-add-web-domain-stats-user
  53. 1 1
      bin/v-add-web-php
  54. 3 1
      bin/v-backup-user
  55. 1 1
      bin/v-change-cron-job
  56. 1 0
      bin/v-change-database-host-password
  57. 1 1
      bin/v-change-database-password
  58. 1 1
      bin/v-change-database-user
  59. 1 1
      bin/v-change-dns-domain-exp
  60. 1 1
      bin/v-change-dns-domain-ip
  61. 1 1
      bin/v-change-dns-domain-soa
  62. 1 1
      bin/v-change-dns-domain-tpl
  63. 1 1
      bin/v-change-dns-domain-ttl
  64. 1 1
      bin/v-change-dns-record
  65. 0 1
      bin/v-change-dns-record-id
  66. 3 3
      bin/v-change-domain-owner
  67. 1 1
      bin/v-change-firewall-rule
  68. 2 0
      bin/v-change-fs-file-permission
  69. 1 1
      bin/v-change-mail-account-password
  70. 1 1
      bin/v-change-mail-account-quota
  71. 1 1
      bin/v-change-mail-domain-catchall
  72. 1 1
      bin/v-change-mail-domain-sslcert
  73. 3 3
      bin/v-change-sys-api
  74. 2 1
      bin/v-change-sys-config-value
  75. 1 1
      bin/v-change-sys-db-alias
  76. 8 0
      bin/v-change-sys-demo-mode
  77. 1 1
      bin/v-change-sys-ip-helo
  78. 1 1
      bin/v-change-sys-ip-name
  79. 1 1
      bin/v-change-sys-ip-nat
  80. 1 1
      bin/v-change-sys-ip-owner
  81. 1 1
      bin/v-change-sys-ip-status
  82. 1 0
      bin/v-change-sys-language
  83. 2 1
      bin/v-change-sys-port
  84. 1 1
      bin/v-change-sys-release
  85. 1 0
      bin/v-change-sys-timezone
  86. 3 3
      bin/v-change-sys-webmail
  87. 55 0
      bin/v-change-user-config-value
  88. 1 1
      bin/v-change-user-contact
  89. 1 1
      bin/v-change-user-language
  90. 1 1
      bin/v-change-user-name
  91. 1 1
      bin/v-change-user-ns
  92. 7 1
      bin/v-change-user-package
  93. 2 1
      bin/v-change-user-password
  94. 2 0
      bin/v-change-user-php-cli
  95. 2 1
      bin/v-change-user-rkey
  96. 1 1
      bin/v-change-user-role
  97. 1 1
      bin/v-change-user-shell
  98. 59 0
      bin/v-change-user-sort-order
  99. 1 1
      bin/v-change-user-template
  100. 61 0
      bin/v-change-user-theme

+ 1 - 1
bin/v-add-cron-hestia-autoupdate

@@ -94,7 +94,7 @@ $BIN/v-restart-cron
 check_result $? "Cron restart failed" >/dev/null
 
 # Logging
-log_history "enabled automatic updates"
+$BIN/v-log-action "system" "Info" "Updates" "Automatic updates enabled."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 2 - 2
bin/v-add-cron-job

@@ -84,11 +84,11 @@ sync_cron_jobs
 increase_user_value $user '$U_CRON_JOBS'
 
 # Restarting crond
-$BIN/v-restart-cron
+$BIN/v-restart-cron $restart
 check_result $? "Cron restart failed" >/dev/null
 
 # Logging
-log_history "added cron job $job"
+$BIN/v-log-action "$user" "Info" "Cron Jobs" "Cron job added (ID: $job, Command: $command)"
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-cron-reports

@@ -56,7 +56,7 @@ $BIN/v-restart-cron
 check_result $? "Cron restart failed" >/dev/null
 
 # Logging
-log_history "enabled cron reporting"
+$BIN/v-log-action "$user" "Info" "Cron Jobs" "Cron job notifications and reporting enabled."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-database

@@ -96,7 +96,7 @@ increase_dbhost_values
 increase_user_value "$user" '$U_DATABASES'
 
 # Logging
-log_history "added $type database $database"
+$BIN/v-log-action "$user" "Info" "Databases" "Added new database $database ($type)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 0
bin/v-add-database-host

@@ -133,6 +133,7 @@ else
 fi
 
 # Logging
+$BIN/v-log-action "system" "Info" "Database" "Added external $type database server ($host) to the system."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-database-temp-user

@@ -78,8 +78,8 @@ echo '{
 #----------------------------------------------------------#
 #                       Hestia                             #
 #----------------------------------------------------------#
-log_history "Granted $dbuser access to $database"
 
 # Logging
+$BIN/v-log-action "$user" "Info" "Databases" "Granted user $dbuser access to database $database."
 log_event "$OK" "$ARGUMENTS"
 exit

+ 5 - 1
bin/v-add-dns-domain

@@ -61,6 +61,10 @@ if [ "$($BIN/v-list-dns-domain $user $domain_idn plain |cut -f 1) " != "$domain"
 else
     is_domain_new 'dns' "$domain"
 fi
+if [ -z "$(is_ip_format_valid $domain)" ]; then
+    echo "Error: Invalid domain format. IP address detected as input." 
+    exit 1
+fi
 
 is_package_full 'DNS_DOMAINS'
 template=$(get_user_value '$DNS_TEMPLATE')
@@ -221,7 +225,7 @@ $BIN/v-restart-dns $restart
 check_result $? "DNS restart failed"
 
 # Logging
-log_history "added dns domain $domain"
+$BIN/v-log-action "$user" "Info" "DNS" "Added new DNS domain (Name: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 4 - 1
bin/v-add-dns-record

@@ -27,6 +27,7 @@ priority=$6
 id=$7
 restart=$8
 ttl=$9
+quiet=${10}
 
 if [ -z "$priority" ]; then
     priority=10
@@ -152,7 +153,9 @@ $BIN/v-restart-dns $restart
 check_result $? $E_RESTART 'dns failed to restart'
 
 # Logging
-log_history "added $rtype dns record $record for $domain"
+if [ "$quiet" != "yes" ]; then
+    $BIN/v-log-action "$user" "Info" "DNS" "Added DNS record (Type: $rtype, Value: $record, Domain: $domain)."
+fi
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-fastcgi-cache

@@ -127,7 +127,7 @@ if [ "$restart" = "yes" ]; then
 fi
 
 # Logging
-log_history "Enabled FastCGI cache for $domain"
+$BIN/v-log-action "$user" "Info" "Web" "FastCGI cache enabled (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 0
bin/v-add-firewall-ban

@@ -91,6 +91,7 @@ chmod 660 $conf
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Warning" "Firewall" "Banned IP address $ip."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 4 - 0
bin/v-add-firewall-chain

@@ -31,8 +31,11 @@ if [ -z "$hestiaport" ]; then
 fi
 
 # Includes
+# shellcheck /usr/local/hestia/func/main.sh
 source $HESTIA/func/main.sh
+# shellcheck /usr/local/hestia/func/firewall.sh
 source $HESTIA/func/firewall.sh
+# shellcheck /usr/local/hestia/conf/hestia.conf
 source $HESTIA/conf/hestia.conf
 
 
@@ -103,6 +106,7 @@ chmod 660 $chains
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Info" "Firewall" "Added service to firewall (Service: $chain, Port: $port, Protocol: $protocol)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 0
bin/v-add-firewall-ipset

@@ -188,6 +188,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Info" "Firewall" "Added new IP list (Name: $ip_name, IP version: $ip_version, Autoupdate: $autoupdate)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 6 - 0
bin/v-add-firewall-rule

@@ -102,7 +102,13 @@ $BIN/v-update-firewall
 #                       Hestia                             #
 #----------------------------------------------------------#
 
+# Fix missing port value in log if zero
 # Logging
+if [ -z "$port" ]; then
+    port="0"
+fi
+
+$BIN/v-log-action "system" "Info" "Firewall" "Added firewall rule (Action: $action, Port: $port, Protocol: $protocol)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-account

@@ -98,7 +98,7 @@ increase_user_value "$user" '$U_MAIL_ACCOUNTS'
 update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accounts"
 
 # Logging
-log_history "added mail account $account@$domain"
+$BIN/v-log-action "$user" "Info" "Mail" "Added new mail account ($account@$domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-account-alias

@@ -77,7 +77,7 @@ fi
 update_object_value "mail/$domain" 'ACCOUNT' "$account"  '$ALIAS' "$aliases"
 
 # Logging
-log_history "added alias $malias to $account@$domain "
+$BIN/v-log-action "$user" "Info" "Mail" "Added alias $malias to mail account $account@$domain."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-account-autoreply

@@ -82,7 +82,7 @@ chmod 660 $USER_DATA/mail/$account@$domain.msg
 update_object_value "mail/$domain" 'ACCOUNT' "$account" '$AUTOREPLY' 'yes'
 
 # Logging
-log_history "added autoreply message on $account@$domain"
+$BIN/v-log-action "$user" "Info" "Mail" "Added auto-reply message for mail account $account@$domain."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-account-forward

@@ -85,7 +85,7 @@ fi
 update_object_value "mail/$domain" 'ACCOUNT' "$account"  '$FWD' "$fwd"
 
 # Logging
-log_history "added forwarding from $account@$domain to $email_forward"
+$BIN/v-log-action "$user" "Warning" "Mail" "Mail forwarding on mail account $account@$domain enabled (send to: $email_forward)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-account-fwd-only

@@ -83,7 +83,7 @@ add_object_key "mail/$domain" 'ACCOUNT' "$account" 'FWD_ONLY' 'MD5'
 update_object_value "mail/$domain" 'ACCOUNT' "$account"  '$FWD_ONLY' "yes"
 
 # Logging
-log_history "added fwd_only flag for $account@$domain"
+$BIN/v-log-action "$user" "Warning" "Mail" "Forward-only flag enabled on mail account $account@$domain."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 8 - 4
bin/v-add-mail-domain

@@ -60,6 +60,10 @@ if [ "$($BIN/v-list-mail-domain $user $domain_idn plain |cut -f 1) " != "$domain
 else
     is_domain_new 'mail' "$domain"
 fi
+if [ -z "$(is_ip_format_valid $domain)" ]; then
+    echo "Error: Invalid domain format. IP address detected as input." 
+    exit 1
+fi
 
 is_package_full 'MAIL_DOMAINS'
 is_dir_symlink $HOMEDIR/$user/mail
@@ -156,18 +160,18 @@ if [ ! -z "$DNS_SYSTEM" ] && [ "$dkim" = 'yes' ]; then
         p=$(cat $USER_DATA/mail/$domain.pub|grep -v ' KEY---'|tr -d '\n')
         record='_domainkey'
         policy="\"t=y; o=~;\""
-        $BIN/v-add-dns-record $user $domain $record TXT "$policy" '' '' 'no'
+        $BIN/v-add-dns-record $user $domain $record TXT "$policy" '' '' 'no' '' 'yes'
 
         record='mail._domainkey'
         selector="\"v=DKIM1\; k=rsa\; p=$p\""
-        $BIN/v-add-dns-record $user $domain $record TXT "$selector"
+        $BIN/v-add-dns-record $user $domain $record TXT "$selector" '' '' 'yes' '' 'yes'
     fi
 fi
 
 # Add webmail configuration to mail domain
 if [ ! -z "$WEB_SYSTEM" ] || [ ! -z "$PROXY_SYSTEM" ]; then
     if [ ! -z "$IMAP_SYSTEM" ]; then
-        $BIN/v-add-sys-webmail $user $domain '' 'no'
+        $BIN/v-add-mail-domain-webmail $user $domain '' 'no'
     fi
 fi
     
@@ -191,7 +195,7 @@ $BIN/v-restart-proxy $restart
 check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
-log_history "added mail domain $domain"
+$BIN/v-log-action "$user" "Info" "Mail" "Added new mail domain ($domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-domain-antispam

@@ -66,7 +66,7 @@ fi
 update_object_value 'mail' 'DOMAIN' "$domain" '$ANTISPAM' 'yes'
 
 # Logging
-log_history "enabled antispam on $domain"
+$BIN/v-log-action "$user" "Info" "Mail" "Anti-spam protection enabled (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-domain-antivirus

@@ -66,7 +66,7 @@ fi
 update_object_value 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS' 'yes'
 
 # Logging
-log_history "enabled antivirus on $domain"
+$BIN/v-log-action "$user" "Info" "Mail" "Anti-virus scanning enabled (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-domain-catchall

@@ -67,7 +67,7 @@ fi
 update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email"
 
 # Logging
-log_history "added $email as catchall email for $domain"
+$BIN/v-log-action "$user" "Warning" "Mail" "Catch-all forwarding enabled (Domain: $domain, Send to: $email)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 3 - 3
bin/v-add-mail-domain-dkim

@@ -78,11 +78,11 @@ if [ ! -z "$DNS_SYSTEM" ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
     p=$(cat $USER_DATA/mail/$domain.pub |grep -v ' KEY---' |tr -d '\n')
     record="_domainkey"
     policy="\"t=y\; o=~\;\""
-    $BIN/v-add-dns-record $user $domain $record TXT "$policy" '' '' 'no'
+    $BIN/v-add-dns-record $user $domain $record TXT "$policy" '' '' 'no' '' 'yes'
 
     record="mail._domainkey"
     selector="\"v=DKIM1\; k=rsa\; p=$p\""
-    $BIN/v-add-dns-record $user $domain $record TXT "$selector"
+    $BIN/v-add-dns-record $user $domain $record TXT "$selector" '' '' 'yes' '' 'yes'
 fi
 
 
@@ -95,7 +95,7 @@ update_object_value 'mail' 'DOMAIN' "$domain" '$DKIM' 'yes'
 increase_user_value "$user" '$U_MAIL_DKIM'
 
 # Logging
-log_history "enabled DKIM support for $domain"
+$BIN/v-log-action "$user" "Info" "Mail" "DKIM message signing enabled (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-domain-smtp-relay

@@ -71,7 +71,7 @@ update_object_value 'mail' 'DOMAIN' "$domain" '$U_SMTP_RELAY_USERNAME' "$usernam
 update_object_value 'mail' 'DOMAIN' "$domain" '$U_SMTP_RELAY_PASSWORD' "$password"
 
 # Logging
-log_history "Added domain smtp relay support for $domain"
+$BIN/v-log-action "$user" "Info" "Mail" "SMTP Relay enabled (Domain: $domain, Host: $host, Port: $port)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-mail-domain-ssl

@@ -112,7 +112,7 @@ $BIN/v-restart-proxy $restart
 check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
-log_history "enabled mail ssl support for $domain"
+$BIN/v-log-action "$user" "Info" "Mail" "SSL enabled (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 13 - 4
bin/v-add-sys-webmail → bin/v-add-mail-domain-webmail

@@ -99,10 +99,19 @@ else
 
         if [ "$dns_domain" = "$domain" ]; then
             if [ -z "$webmail_record" ]; then
-                $BIN/v-add-dns-record $user $domain $WEBMAIL_ALIAS A $ip '' '' $restart
+                if [ "$quiet" = "yes" ]; then
+                    $BIN/v-add-dns-record $user $domain $WEBMAIL_ALIAS A $ip '' '' $restart '' 'yes'
+                else
+                    $BIN/v-add-dns-record $user $domain $WEBMAIL_ALIAS A $ip '' '' $restart '' 'yes'
+                fi
             else
-                $BIN/v-delete-dns-record $user $domain $webmail_record $restart
-                $BIN/v-add-dns-record $user $domain $WEBMAIL_ALIAS A $ip '' '' $restart
+                if [ "$quiet" = "yes" ]; then
+                    $BIN/v-delete-dns-record $user $domain $webmail_record $restart 'yes'
+                    $BIN/v-add-dns-record $user $domain $WEBMAIL_ALIAS A $ip '' '' $restart '' 'yes'
+                else
+                    $BIN/v-delete-dns-record $user $domain $webmail_record $restart 'yes'
+                    $BIN/v-add-dns-record $user $domain $WEBMAIL_ALIAS A $ip '' '' $restart '' 'yes'
+                fi
             fi
         fi
     fi
@@ -162,7 +171,7 @@ fi
 
 # Logging
 if [ "$quiet" != 'yes' ]; then
-    log_history "enabled webmail support for $domain"
+    $BIN/v-log-action "$user" "Info" "Mail" "Webmail access enabled (Domain: $domain)."
 fi
 log_event "$OK" "$ARGUMENTS"
 

+ 2 - 5
bin/v-add-sys-filemanager

@@ -89,6 +89,7 @@ if [ $? -ne 0 ]; then
     # Installation failed, clean up files
     rm --recursive --force ${FM_INSTALL_DIR}
     $BIN/v-change-sys-config-value 'FILE_MANAGER' 'false'
+    $BIN/v-log-action "system" "Error" "Plugins" "File Manager installation failed (Version: $fm_v)."
     exit 1
 fi
 
@@ -104,13 +105,9 @@ chown $user: "${FM_INSTALL_DIR}/repository"
 
 $BIN/v-change-sys-config-value 'FILE_MANAGER' 'true'
 
-if [ "$MODE" != "quiet" ]; then
-    echo "File Manager is now installed and ready for use."  
-fi
-
 #----------------------------------------------------------#
 #                       Logging                            #
 #----------------------------------------------------------#
 
-log_history "file manager installed" '' 'admin'
+$BIN/v-log-action "system" "Info" "Plugins" "File Manager enabled (Version: $fm_v)."
 log_event "$OK" "$ARGUMENTS"

+ 1 - 1
bin/v-add-sys-ip

@@ -225,7 +225,7 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ ! -z "$helo"]; then
 fi
 
 # Logging
-log_history "added system ip address $ip" '' 'admin'
+$BIN/v-log-action "system" "Info" "Network" "Added new IP address to the system (IP: $ip)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 2
bin/v-add-sys-pma-sso

@@ -114,6 +114,5 @@ $BIN/v-change-sys-config-value 'PHPMYADMIN_KEY' "$phpmyadminkey"
 if [ "$MODE" != "quiet" ]; then
     echo "PMA Hestia-SSO plugin has been succesfully installed"
 fi
-
-log_history "PMA Hestia-SSO plugin has been succesfully installed" '' 'admin'
+$BIN/v-log-action "system" "Info" "Plugins" "phpMyAdmin Single Sign-On has been enabled."
 log_event "$OK" "$ARGUMENTS"

+ 1 - 0
bin/v-add-sys-quota

@@ -103,6 +103,7 @@ done
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Info" "Plugins" "System Quota enforcement enabled."
 log_history "system quota enforcement enabled"
 log_event "$OK" "$ARGUMENTS"
 

+ 5 - 3
bin/v-add-sys-rainloop

@@ -169,7 +169,9 @@ fi
 #                       Logging                            #
 #----------------------------------------------------------#
 
-
-
-log_history "Rainloop successfuly installed" '' 'admin'
+if [ "$UPDATE" = "yes" ]; then
+    $BIN/v-log-action "system" "Info" "Plugins" "Rainloop updated (Version: $version)."
+else
+    $BIN/v-log-action "system" "Info" "Plugins" "Rainloop enabled (Version: $version)."
+fi
 log_event "$OK" "$ARGUMENTS"

+ 5 - 3
bin/v-add-sys-roundcube

@@ -191,7 +191,9 @@ fi
 #                       Logging                            #
 #----------------------------------------------------------#
 
-
-
-log_history "Roundcube successfuly installed" '' 'admin'
+if [ "$UPDATE" = "yes" ]; then
+    $BIN/v-log-action "system" "Info" "Plugins" "Roundcube updated (Version: $version)."
+else
+    $BIN/v-log-action "system" "Info" "Plugins" "Roundcube enabled (Version: $version)."
+fi
 log_event "$OK" "$ARGUMENTS"

+ 1 - 1
bin/v-add-sys-smtp-relay

@@ -57,7 +57,7 @@ EOL
 #----------------------------------------------------------#
 
 # Logging
-log_history "enabled system wide smtp relay support."
+$BIN/v-log-action "system" "Info" "Mail" "Server-wide SMTP Relay enabled (Host: $host, Port: $port)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 7 - 1
bin/v-add-user

@@ -235,7 +235,12 @@ U_DATABASES='0'
 U_CRON_JOBS='0'
 U_BACKUPS='0'
 LANGUAGE=''
+THEME=''
 NOTIFICATIONS='no'
+PREF_UI_SORT='name'
+LOGIN_DISABLED='no'
+LOGIN_USE_IPLIST='no'
+LOGIN_ALLOW_IPS=''
 TIME='$time'
 DATE='$date'" > $USER_DATA/user.conf
 chmod 660 $USER_DATA/user.conf
@@ -259,7 +264,8 @@ fi
 $BIN/v-add-user-sftp-jail $user
 
 # Logging
-log_history "added system user $user" '' 'admin'
+$BIN/v-log-action "system" "Info" "Users" "User account added (Name: $user)."
+$BIN/v-log-action "$user" "Info" "System" "Welcome!"
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-user-composer

@@ -85,7 +85,7 @@ check_result $? "Composer install failed"
 
 
 # Logging
-log_history "Enabled composer for user $user"
+$BIN/v-log-action "$user" "Info" "Plugins" "Composer support enabled."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 2 - 2
bin/v-add-user-package

@@ -99,9 +99,9 @@ chmod 644 $HESTIA/data/packages/$package.pkg
 
 # Logging
 if [ "$rewrite" != 'yes' ]; then
-    log_history "added user package $package" '' 'admin'
+    $BIN/v-log-action "system" "Info" "Packages" "Package added (Name: $package)."
 else
-    log_history "updated user package $package" '' 'admin'
+    $BIN/v-log-action "system" "Info" "Packages" "Package limits updated (Name: $package)."
 fi
 log_event "$OK" "$ARGUMENTS"
 

+ 1 - 1
bin/v-add-user-ssh-key

@@ -69,7 +69,7 @@ echo "$key" >> "$AUTHKEY_FILE"
 #----------------------------------------------------------#
 
 # Logging
-log_history "Added ssh-key $user"
+$BIN/v-log-action "$user" "Info" "System" "Added a new SSH key."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-user-wp-cli

@@ -68,7 +68,7 @@ user_exec chmod +x $WPCLI_BIN
 #----------------------------------------------------------#
 
 # Logging
-log_history "Enabled wp-cli for user $user"
+$BIN/v-log-action "$user" "Info" "Plugins" "WP-CLI support enabled."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 5 - 1
bin/v-add-web-domain

@@ -62,6 +62,10 @@ if [ "$($BIN/v-list-web-domain $user $domain_idn plain |cut -f 1) " != "$domain"
 else
     is_domain_new 'web' "$domain,$aliases"
 fi
+if [ -z "$(is_ip_format_valid $domain)" ]; then
+    echo "Error: Invalid domain format. IP address detected as input." 
+    exit 1
+fi
 
 is_dir_symlink "$HOMEDIR/$user/web"
 is_dir_symlink "$HOMEDIR/$user/web/$domain"
@@ -205,7 +209,7 @@ $BIN/v-restart-proxy $restart
 check_result $? "Proxy restart failed" >/dev/null
 
 # Logging
-log_history "added web domain $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Added new web domain (Name: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 2
bin/v-add-web-domain-alias

@@ -112,8 +112,7 @@ check_result $? "Web restart failed" >/dev/null
 $BIN/v-restart-proxy $restart
 check_result $? "Proxy restart failed" >/dev/null
 
-
-log_history "added $aliases for $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Added new web domain alias (Alias: $aliases, Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-web-domain-allow-users

@@ -66,7 +66,7 @@ fi
 # Adding new alias
 update_object_value 'web' 'DOMAIN' "$domain" '$ALLOW_USERS' "yes"
 
-log_history "Allow users create subdomain for $domain"
+$BIN/v-log-action "$user" "Warning" "Web" "Subdomain ownership enforcement disabled (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 6
bin/v-add-web-domain-backend

@@ -49,11 +49,6 @@ check_hestia_demo_mode
 prepare_web_backend
 get_domain_values 'web'
 
-# Checking backend configuration
-#if [ -e "$pool/$backend_type.conf" ]; then
-#    exit
-#fi
-
 # Allocating backend port
 backend_port=9000
 ports=$(grep -v '^;' $pool/* 2>/dev/null |grep listen |grep -o :[0-9].*)
@@ -93,7 +88,7 @@ $BIN/v-restart-web-backend $restart
 check_result $? "Web backend restart failed" >/dev/null
 
 # Logging
-log_history "added $WEB_BACKEND backend configuration for $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Web domain configuration applied (Domain: $domain, Backend: $WEB_BACKEND)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-web-domain-ftp

@@ -136,7 +136,7 @@ update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
 update_object_value 'web' 'DOMAIN' "$domain" '$FTP_PATH' "$ftp_path"
 
 # Logging
-log_history "added ftp account ${1}_${3}@$domain"
+$BIN/v-log-action "$user" "Info" "Web" "Added new FTP account (Name: ${1}_${3}@$domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-web-domain-httpauth

@@ -116,7 +116,7 @@ update_object_value 'web' 'DOMAIN' "$domain" '$AUTH_USER' "$auth_user"
 update_object_value 'web' 'DOMAIN' "$domain" '$AUTH_HASH' "$auth_hash"
 
 # Logging
-log_history "added http auth user $httpauth_user on $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Password protection enabled (Domain: $domain, Username: $httpauth_user)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-web-domain-proxy

@@ -85,7 +85,7 @@ update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' "$extentions"
 $BIN/v-restart-proxy $restart
 check_result $? "Proxy restart failed" >/dev/null
 
-log_history "enabled proxy support for $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Proxy enabled (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-web-domain-redirect

@@ -115,7 +115,7 @@ if [ "$restart" = "yes" ]; then
 fi
 
 # Logging
-log_history "Enable forced redirect $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Domain redirection enabled (Domain: $domain, Redirect to: $redirect)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-web-domain-ssl

@@ -150,7 +150,7 @@ if [ ! -z "$UPDATE_SSL_SCRIPT" ]; then
 fi
 
 # Logging
-log_history "enabled ssl support for $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Added certificate and enabled SSL (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 4 - 1
bin/v-add-web-domain-ssl-force

@@ -15,6 +15,7 @@
 # Argument definition
 user=$1
 domain=$2
+quiet=$3
 
 # Includes
 # shellcheck source=/usr/local/hestia/func/main.sh
@@ -95,7 +96,9 @@ $BIN/v-restart-proxy $restart
 check_result $? "Proxy restart failed" > /dev/null
 
 # Logging
-log_history "enabled automatic HTTP-to-HTTPS redirection for $domain"
+if [ "$quiet" != "yes" ]; then
+    $BIN/v-log-action "$user" "Info" "Web" "Automatic HTTPS redirection enabled (Domain: $domain)."
+fi
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 4 - 1
bin/v-add-web-domain-ssl-hsts

@@ -13,6 +13,7 @@
 # Argument definition
 user=$1
 domain=$2
+quiet=$3
 
 # Includes
 # shellcheck source=/usr/local/hestia/func/main.sh
@@ -81,7 +82,9 @@ $BIN/v-restart-proxy $restart
 check_result $? "Proxy restart failed" > /dev/null
 
 # Logging
-log_history "enabled HTTP Strict Transport Security (HSTS) for $domain"
+if [ "$quiet" != "yes" ]; then
+    $BIN/v-log-action "$user" "Info" "Web" "HTTP Strict Transport Security (HSTS) enabled (Domain: $domain)."
+fi
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 0 - 1
bin/v-add-web-domain-ssl-preset

@@ -54,7 +54,6 @@ if [  "$ssl" = "yes" ]; then
 fi
 
 # Logging
-log_history "Set values SSL FORCE / HSTS for $domain"
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-web-domain-stats

@@ -104,7 +104,7 @@ echo "$BIN/v-update-web-domain-stat $user $domain" >> \
 update_object_value 'web' 'DOMAIN' "$domain" '$STATS' "$type"
 
 # Logging
-log_history "enabled web log analyzer for $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Web traffic analyzer enabled (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 # Build stats

+ 1 - 1
bin/v-add-web-domain-stats-user

@@ -85,7 +85,7 @@ if [ "$WEB_SYSTEM" = 'nginx' ]; then
 fi
 
 # Logging
-log_history "added password protection for web stats on $domain"
+$BIN/v-log-action "$user" "Info" "Web" "Web traffic analyzer password enabled (Username: $stats_user, Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-add-web-php

@@ -132,7 +132,7 @@ cp -f $HESTIA_INSTALL_DIR/php-fpm/multiphp.tpl \
 #----------------------------------------------------------#
 
 # Logging
-log_history "installed php $version" '' 'admin'
+$BIN/v-log-action "system" "Info" "System" "Installed PHP $version."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 3 - 1
bin/v-backup-user

@@ -672,10 +672,10 @@ sed -i "/v-backup-user $user /d" $HESTIA/data/queue/backup.pipe
 
 U_BACKUPS=$(grep BACKUP $USER_DATA/backup.conf |wc -l)
 update_user_value "$user" '$U_BACKUPS' "$U_BACKUPS"
+cd $BACKUP
 
 # Send notification
 if [ -e "$BACKUP/$user.log" ] && [ "$notify" = "yes" ]; then
-    cd $BACKUP
     subj="$user → backup has been completed"
     email=$(get_user_value '$CONTACT')
     cat $BACKUP/$user.log |$SENDMAIL -s "$subj" $email $notify
@@ -684,6 +684,8 @@ if [ -e "$BACKUP/$user.log" ] && [ "$notify" = "yes" ]; then
 fi
 
 # Logging
+$BIN/v-log-action "$user" "Info" "Backup" "Backup created (Archive: $backup_new_date.tar)."
+$BIN/v-log-action "system" "Info" "Backup" "Backup created (User: $user, Archive: $backup_new_date.tar)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-cron-job

@@ -82,7 +82,7 @@ $BIN/v-restart-cron
 check_result $? "Cron restart failed" >/dev/null
 
 # Logging
-log_history "changed cron job $job"
+$BIN/v-log-action "$user" "Info" "Cron Jobs" "Cron job updated (Job: $job, Command: $command)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 0
bin/v-change-database-host-password

@@ -72,6 +72,7 @@ update_object_value "../../conf/$type" 'HOST' "$host" '$PASSWORD' "$dbpass"
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Warning" "Database" "Password changed for remote database host (Host: $host)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-database-password

@@ -65,7 +65,7 @@ esac
 update_object_value 'db' 'DB' "$database" '$MD5' "$md5"
 
 # Logging
-log_history "changed $database database password"
+$BIN/v-log-action "$user" "Info" "Database" "Database password changed (Database: $database)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-database-user

@@ -100,7 +100,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed $database database user to $dbuser"
+$BIN/v-log-action "$user" "Info" "Database" "Database user changed (Database: $database, User: $dbuser)"
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-dns-domain-exp

@@ -70,7 +70,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed whois expiration date for $domain"
+$BIN/v-log-action "$user" "Info" "DNS" "Updated DNS SOA expiration date (Domain: $domain, Value: $exp)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-dns-domain-ip

@@ -89,7 +89,7 @@ $BIN/v-restart-dns $restart
 check_result $? "DNS restart failed" >/dev/null
 
 # Logging
-log_history "changed dns ip for $domain to $ip"
+$BIN/v-log-action "$user" "Info" "DNS" "IP address for DNS domain changed (IP: $ip, Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-dns-domain-soa

@@ -83,7 +83,7 @@ $BIN/v-restart-dns $restart
 check_result $? "DNS restart failed" >/dev/null
 
 # Logging
-log_history "changed soa record for $domain to $soa"
+$BIN/v-log-action "$user" "Info" "DNS" "SOA record for DNS domain changed (SOA: $soa, Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-dns-domain-tpl

@@ -166,7 +166,7 @@ $BIN/v-restart-dns $restart
 check_result $? "DNS restart failed" >/dev/null
 
 # Logging
-log_history "changed dns template for $domain to $template" '' 'admin'
+$BIN/v-log-action "system" "Info" "DNS" "Template for DNS domain changed (Template: $template, Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-dns-domain-ttl

@@ -82,7 +82,7 @@ $BIN/v-restart-dns $restart
 check_result $? "DNS restart failed" >/dev/null
 
 # Logging
-log_history "changed TTL for $domain to $ttl"
+$BIN/v-log-action "$user" "Info" "DNS" "TTL for DNS domain changed (TTL: $ttl, Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-dns-record

@@ -128,7 +128,7 @@ $BIN/v-restart-dns $restart
 check_result $? "DNS restart failed" >/dev/null
 
 # Logging
-log_history "changed dns record on $domain to $dvalue"
+$BIN/v-log-action "$user" "Info" "DNS" "DNS record value changed (Type: $type, Record: $record, Value: $dvalue, Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 0 - 1
bin/v-change-dns-record-id

@@ -87,7 +87,6 @@ $BIN/v-restart-dns $restart
 check_result $? "DNS restart failed" >/dev/null
 
 # Logging
-log_history "changed dns record id on $domain"
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 3 - 3
bin/v-change-domain-owner

@@ -267,9 +267,9 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "moved domain $domain from $owner to $user" '' "admin"
-log_history "$domain was added to your account" '' "$user"
-log_history "$domain was removed from your account" '' "$owner"
+$BIN/v-log-action "system" "Info" "System" "Domain moved between users (Domain: $domain, Old user: $owner, New User: $user)."
+$BIN/v-log-action "$user" "Info" "System" "New domain added to account (Domain: $domain)."
+$BIN/v-log-action "$owner" "Info" "System" "Domain removed from account (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-firewall-rule

@@ -96,6 +96,6 @@ $BIN/v-update-firewall
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Info" "Firewall" "Firewall rule changed (Rule: $rule, Action: $action, Protocol: $protocol, Port: $port_ext)."
 log_event "$OK" "$ARGUMENTS"
-
 exit

+ 2 - 0
bin/v-change-fs-file-permission

@@ -53,5 +53,7 @@ if [ $? -ne 0 ]; then
     exit 3
 fi
 
+$BIN/v-log-action "system" "Info" "System" "File system permissions changed (User: $user, File: $src_file, Permissions: $permissions)."
+
 # Exiting
 exit

+ 1 - 1
bin/v-change-mail-account-password

@@ -79,7 +79,7 @@ fi
 update_object_value "mail/$domain" 'ACCOUNT' "$account" '$MD5' "$md5"
 
 # Logging
-log_history "changed password for $account@$domain"
+$BIN/v-log-action "$user" "Info" "Mail" "Mail account password changed (Account: $account@$domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-mail-account-quota

@@ -81,7 +81,7 @@ fi
 update_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA' "$quota"
 
 # Logging
-log_history "changed mail quota for $account@$domain to $quota"
+$BIN/v-log-action "$user" "Info" "Mail" "Mail account quota changed (Quota: $quota, Account: $account@$domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-mail-domain-catchall

@@ -66,7 +66,7 @@ fi
 update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email"
 
 # Logging
-log_history "changed catchall email for $domain to $email"
+$BIN/v-log-action "$user" "Info" "Mail" "Mail domain catch-all address changed (Domain: $domain, Send to: $email)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-mail-domain-sslcert

@@ -69,7 +69,7 @@ $BIN/v-restart-mail $restart
 check_result $? "Mail restart failed" >/dev/null
 
 # Logging
-log_history "changed ssl certificate for $domain"
+$BIN/v-log-action "$user" "Info" "Mail" "SSL certificate changed (Domain: $domain)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 3 - 3
bin/v-change-sys-api

@@ -71,9 +71,9 @@ fi
 #                       Logging                            #
 #----------------------------------------------------------#
 
-if [ "$status" = "enable" ] || [ "$status" = "disable" ]; then
-    log_history "API status has been changed to $status" '' 'admin'
+if [ "$status" = "enable" ]; then
+    $BIN/v-log-action "system" "Warning" "System" "System API access enabled."
 else
-    log_history "API has been disabled and removed" '' 'admin'
+    $BIN/v-log-action "system" "Info" "System" "System API access disabled."
 fi
 log_event "$OK" "$ARGUMENTS"

+ 2 - 1
bin/v-change-sys-config-value

@@ -45,7 +45,7 @@ check_ckey=$(grep "^$key='" $HESTIA/conf/hestia.conf)
 if [ -z "$check_ckey" ]; then
     echo "$key='$value'" >> $HESTIA/conf/hestia.conf
 else
-    sed -i "s|$key=.*|$key='$value'|g" $HESTIA/conf/hestia.conf
+    sed -i "s|^$key=.*|$key='$value'|g" $HESTIA/conf/hestia.conf
 fi
 
 # Sort configuration file in alphabetical order on change
@@ -59,6 +59,7 @@ rm -f $HESTIA/conf/hestia.conf.bak
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Info" "System" "System configuration value changed (Key: $key, Value: $value)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-sys-db-alias

@@ -104,7 +104,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed $db_editor alias to $alias"
+$BIN/v-log-action "system" "Info" "System" "System access alias changed (Tool: $db_editor, Alias: $alias)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 8 - 0
bin/v-change-sys-demo-mode

@@ -53,6 +53,14 @@ $BIN/v-restart-proxy $restart
 check_result $? "restart" >/dev/null 2>&1
 
 # Logging
+if [ "$active" = "yes" ]; then
+    $BIN/v-log-action "system" "Warning" "System" "Demonstration mode (restricted access) enabled."
+else
+    $BIN/v-log-action "system" "Warning" "Info" "Demonstration mode (restricted access) disabled."
+fi
+
+
+
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-sys-ip-helo

@@ -51,7 +51,7 @@ update_ip_helo_value $ip $helo
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed associated HELO/SMTP Banner on $ip to $helo" '' 'admin'
+$BIN/v-log-action "system" "Info" "System" "Configured HELO/SMTP banner (IP: $ip, Value: $helo)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-sys-ip-name

@@ -51,7 +51,7 @@ update_ip_value '$NAME' "$ip_name"
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed associated dns on $ip to $ip_name" '' 'admin'
+$BIN/v-log-action "system" "Info" "System" "Changed associated DNS on $ip to $ip_name."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-sys-ip-nat

@@ -110,7 +110,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed associated nat address on $ip to $nat_ip" '' 'admin'
+$BIN/v-log-action "system" "Info" "System" "IP NAT address changed (IP: $ip, NAT IP: $nat_ip)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-sys-ip-owner

@@ -91,7 +91,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed owner of $ip to $user" '' 'admin'
+$BIN/v-log-action "system" "Info" "System" "IP address owner changed (IP: $ip, Owner: $user)"
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-sys-ip-status

@@ -62,7 +62,7 @@ update_ip_value '$STATUS' "$ip_status"
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed $ip status to $ip_status" '' 'admin'
+$BIN/v-log-action "system" "Info" "System" "IP address status changed (Status: $ip_status, IP: $ip)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 0
bin/v-change-sys-language

@@ -67,6 +67,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Info" "System" "System language changed (Language: $language)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 2 - 1
bin/v-change-sys-port

@@ -87,6 +87,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-#log_event "$OK" "$ARGUMENTS"
+$BIN/v-log-action "system" "Warning" "System" "Hestia Control Panel backend port changed (New Value: $PORT, Old Value: $ORIGINAL_PORT)."
+log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-sys-release

@@ -71,5 +71,5 @@ fi
 #----------------------------------------------------------#
 #                       Hestia                             #
 #----------------------------------------------------------#
-
+$BIN/v-log-action "system" "Info" "System" "Update branch changed (Value: $branch)."
 exit

+ 1 - 0
bin/v-change-sys-timezone

@@ -75,6 +75,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
+$BIN/v-log-action "system" "Info" "System" "System time zone changed (Value: $timezone)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 3 - 3
bin/v-change-sys-webmail

@@ -36,7 +36,7 @@ check_hestia_demo_mode
 # Delete old webmail configuration
 for user in $($HESTIA/bin/v-list-sys-users plain); do
     for domain in $($BIN/v-list-mail-domains $user plain |cut -f 1); do
-        $BIN/v-delete-sys-webmail $user $domain
+        $BIN/v-delete-mail-domain-webmail $user $domain
     done
 done
 
@@ -46,7 +46,7 @@ $BIN/v-change-sys-config-value 'WEBMAIL_ALIAS' $NEW_ALIAS
 # Add new webmail configuration
 for user in $($HESTIA/bin/v-list-sys-users plain); do
     for domain in $($BIN/v-list-mail-domains $user plain |cut -f 1); do
-        $BIN/v-add-sys-webmail $user $domain
+        $BIN/v-add-mail-domain-webmail $user $domain
     done
 done
 
@@ -59,7 +59,7 @@ $BIN/v-restart-web $restart
 $BIN/v-restart-proxy $restart
 
 # Logging
-log_history "changed global webmail alias to $NEW_ALIAS" '' 'admin'
+$BIN/v-log-action "system" "Info" "System" "Webmail access alias changed (Value: $NEW_ALIAS, Previous: $OLD_ALIAS)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 55 - 0
bin/v-change-user-config-value

@@ -0,0 +1,55 @@
+#!/bin/bash
+# info: changes user configuration value
+# options: USER KEY VALUE
+# labels: hestia
+#
+# example: v-change-user-config-value admin ROLE admin
+#
+# Changes key/value for specified user.
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument definition
+user=$1
+key="$2"
+value="$3"
+
+# Includes
+# shellcheck source=/usr/local/hestia/func/main.sh
+source $HESTIA/func/main.sh
+# shellcheck source=/usr/local/hestia/conf/hestia.conf
+source $HESTIA/conf/hestia.conf
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+# Reading user values
+source $USER_DATA/user.conf
+
+is_format_valid 'user' 'theme'
+is_object_valid 'user' 'USER' "$user"
+is_object_unsuspended 'user' 'USER' "$user"
+
+# Perform verification if read-only mode is enabled
+check_hestia_demo_mode
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+# Set theme value
+check_ckey=$(grep "^${key^^}" $USER_DATA/user.conf)
+if [ -z "$check_ckey" ]; then
+    # Rebuild user configuration to repair missing value
+    $BIN/v-rebuild-user $user
+fi
+update_user_value "$user" "${key^^}" "$value"
+
+#----------------------------------------------------------#
+#                       Hestia                             #
+#----------------------------------------------------------#
+
+exit

+ 1 - 1
bin/v-change-user-contact

@@ -56,7 +56,7 @@ $BIN/v-rebuild-cron-jobs $user > /dev/null 2>&1
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed contact email to $email"
+$BIN/v-log-action "$user" "Info" "System" "Email address changed (Value: $email)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-user-language

@@ -67,7 +67,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed language to $language"
+$BIN/v-log-action "$user" "Info" "System" "Display language changed (Value: $language)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-user-name

@@ -56,7 +56,7 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed user display name to $name"
+$BIN/v-log-action "$user" "Info" "System" "User display name changed (Value: $name)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-user-ns

@@ -87,7 +87,7 @@ update_user_value "$user" '$NS' "$ns"
 #----------------------------------------------------------#
 
 # Logging
-log_history "updated nameservers $ns1 $ns2 $ns3 $ns4 $ns5 $ns6 $ns7 $ns8"
+$BIN/v-log-action "$user" "Info" "DNS" "Updated DNS nameservers ($ns1 $ns2 $ns3 $ns4 $ns5 $ns6 $ns7 $ns8)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 7 - 1
bin/v-change-user-package

@@ -138,7 +138,12 @@ U_DATABASES='$U_DATABASES'
 U_CRON_JOBS='$U_CRON_JOBS'
 U_BACKUPS='$U_BACKUPS'
 LANGUAGE='$LANGUAGE'
+THEME='$THEME'
 NOTIFICATIONS='$NOTIFICATIONS'
+PREF_UI_SORT='$PREF_UI_SORT'
+LOGIN_DISABLED='$LOGIN_DISABLED'
+LOGIN_USE_IPLIST='$LOGIN_USE_IPLIST'
+LOGIN_ALLOW_IPS='$LOGIN_ALLOW_IPS'
 TIME='$TIME'
 DATE='$DATE'" > $USER_DATA/user.conf
 }
@@ -188,7 +193,8 @@ fi
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed $user package to $package" '' 'admin'
+$BIN/v-log-action "$user" "Info" "System" "You have been assigned a new package ($package)."
+$BIN/v-log-action "system" "Info" "System" "Package limits applied to user (Package: $package, User: $user)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 2 - 1
bin/v-change-user-password

@@ -74,7 +74,8 @@ update_user_value "$user" '$RKEY' "$(generate_password)"
 update_user_value "$user" '$MD5' "$md5"
 
 # Logging
-log_history "changed password"
+$BIN/v-log-action "system" "Warning" "Security" "Password changed (User: $user)."
+$BIN/v-log-action "$user" "Warning" "Security" "Password changed."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 2 - 0
bin/v-change-user-php-cli

@@ -80,4 +80,6 @@ update_user_value "$user" '$PHPCLI' "$version"
 #                       Hestia                             #
 #----------------------------------------------------------#
 
+$BIN/v-log-action "system" "Info" "Users" "Default PHP CLI version changed (User: $user, Version: $version)."
+
 exit

+ 2 - 1
bin/v-change-user-rkey

@@ -65,7 +65,8 @@ else
 fi
 
 # Logging
-log_history "forgot password request"
+$BIN/v-log-action "system" "Warning" "Users" "Password reset requested (User: $user)."
+$BIN/v-log-action "$user" "Warning" "System" "Password reset requested."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 1
bin/v-change-user-role

@@ -42,9 +42,9 @@ check_hestia_demo_mode
 #                       Action                             #
 #----------------------------------------------------------#
 
+$BIN/v-log-action "system" "Warning" "Security" "User privileges changed (User: $user, Role: $role, Previous: $ROLE)."
 update_user_value "$user" '$ROLE' "$role"
 
-
 #----------------------------------------------------------#
 #                       Hestia                             #
 #----------------------------------------------------------#

+ 1 - 1
bin/v-change-user-shell

@@ -63,7 +63,7 @@ fi
 update_user_value "$user" '$SHELL' "$shell"
 
 # Logging
-log_history "changed $user shell to $shell" '' 'admin'
+$BIN/v-log-action "system" "Info" "System" "User SSH shell changed (Shell: $shell, User: $user)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 59 - 0
bin/v-change-user-sort-order

@@ -0,0 +1,59 @@
+#!/bin/bash
+# info: updates user role
+# options: USER SORT_ORDER
+# labels: hestia
+#
+# example: v-change-user-sort-order user date
+#
+# Changes web UI display sort order for specified user.
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument definition
+user=$1
+sort_order=$2
+
+
+# Includes
+# shellcheck source=/usr/local/hestia/func/main.sh
+source $HESTIA/func/main.sh
+# shellcheck source=/usr/local/hestia/conf/hestia.conf
+source $HESTIA/conf/hestia.conf
+# Unset THEME variable from $HESTIA/conf/hestia.conf
+unset THEME
+
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+# Reading user values
+source $USER_DATA/user.conf
+
+is_format_valid 'user' 'theme'
+is_object_valid 'user' 'USER' "$user"
+
+is_object_unsuspended 'user' 'USER' "$user"
+
+# Perform verification if read-only mode is enabled
+check_hestia_demo_mode
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+# Set theme value
+check_ckey=$(grep "PREF_UI_SORT" $USER_DATA/user.conf)
+if [ -z "$check_ckey" ]; then
+    # Rebuild user configuration to repair missing value
+    $BIN/v-rebuild-user $user
+fi
+update_user_value "$user" '$PREF_UI_SORT' "$sort_order"
+
+#----------------------------------------------------------#
+#                       Hestia                             #
+#----------------------------------------------------------#
+
+exit

+ 1 - 1
bin/v-change-user-template

@@ -59,7 +59,7 @@ esac
 #----------------------------------------------------------#
 
 # Logging
-log_history "changed $type template to $template"
+$BIN/v-log-action "$user" "Info" "Web" "Default domain template changed (Type: $type, Template: $template)."
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 61 - 0
bin/v-change-user-theme

@@ -0,0 +1,61 @@
+#!/bin/bash
+# info: updates user role
+# options: USER ROLE
+# labels: hestia
+#
+# example: v-change-user-theme user theme
+#
+# Changes web UI display theme for specified user.
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument definition
+user=$1
+theme=$2
+
+
+# Includes
+# shellcheck source=/usr/local/hestia/func/main.sh
+source $HESTIA/func/main.sh
+# shellcheck source=/usr/local/hestia/conf/hestia.conf
+source $HESTIA/conf/hestia.conf
+# Unset THEME variable from $HESTIA/conf/hestia.conf
+unset THEME
+
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+# Reading user values
+source $USER_DATA/user.conf
+
+
+is_format_valid 'user' 'theme'
+is_object_valid 'user' 'USER' "$user"
+
+is_object_unsuspended 'user' 'USER' "$user"
+
+# Perform verification if read-only mode is enabled
+check_hestia_demo_mode
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+# Set theme value
+check_ckey=$(grep "THEME" $USER_DATA/user.conf)
+if [ -z "$check_ckey" ]; then
+    # Rebuild user configuration to repair missing value
+    $BIN/v-rebuild-user $user
+fi
+update_user_value "$user" '$THEME' "$theme"
+
+#----------------------------------------------------------#
+#                       Hestia                             #
+#----------------------------------------------------------#
+$BIN/v-log-action "$user" "Info" "System" "Applied theme to user interface (Theme: $theme)."
+
+exit

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů