myrevery 4 лет назад
Родитель
Сommit
68320a6f97
1 измененных файлов с 15 добавлено и 2 удалено
  1. 15 2
      func/domain.sh

+ 15 - 2
func/domain.sh

@@ -621,11 +621,25 @@ is_mail_domain_new() {
         if [ "$2" == 'mail' ]; then
         if [ "$2" == 'mail' ]; then
             check_result $E_EXISTS "Mail domain $1 exists"
             check_result $E_EXISTS "Mail domain $1 exists"
         fi
         fi
-        mail_user=$(echo "$mail" |cut -f 7 -d /)
+        mail_user=$(echo "$mail" | cut -f 7 -d /)
         if [ "$mail_user" != "$user" ]; then
         if [ "$mail_user" != "$user" ]; then
             check_result $E_EXISTS "Mail domain $1 exists"
             check_result $E_EXISTS "Mail domain $1 exists"
         fi
         fi
     fi
     fi
+    mail_sub=$(echo "$1" | cut -f 1 -d .)
+    mail_nosub=$(echo "$1" | cut -f 1 -d . --complement)
+    for mail_reserved in $(echo "mail $WEBMAIL_ALIAS"); do
+        if [ ! -z "$(ls $HESTIA/data/users/*/mail/$mail_reserved.$1.conf 2>/dev/null)" ]; then
+            if [ "$2" == 'mail' ]; then
+                check_result $E_EXISTS "Required subdomain \"$mail_reserved.$1\" already exists"
+            fi
+        fi
+        if [ ! -z "$(ls $HESTIA/data/users/*/mail/$mail_nosub.conf 2>/dev/null)" ] && [ "$mail_sub" = "$mail_reserved" ]; then
+            if [ "$2" == 'mail' ]; then
+                check_result $E_INVALID "The subdomain \"$mail_sub.\" is reserved by \"$mail_nosub\""
+            fi
+        fi
+    done
 }
 }
 
 
 # Checking mail account existance
 # Checking mail account existance
@@ -641,7 +655,6 @@ is_mail_new() {
     fi
     fi
 }
 }
 
 
-
 # Add mail server SSL configuration
 # Add mail server SSL configuration
 add_mail_ssl_config() {
 add_mail_ssl_config() {
      # Ensure that SSL certificate directories exists
      # Ensure that SSL certificate directories exists