Serghey Rodin 14 лет назад
Родитель
Сommit
382de7eb43
5 измененных файлов с 133 добавлено и 0 удалено
  1. 1 0
      bin/v_add_dns_domain
  2. 3 0
      bin/v_add_dns_domain_record
  3. 126 0
      bin/v_add_mail_domain
  4. 1 0
      bin/v_add_web_domain
  5. 2 0
      bin/v_add_web_domain_alias

+ 1 - 0
bin/v_add_dns_domain

@@ -16,6 +16,7 @@
 # Argument defenition
 user=$1
 domain=$(idn -t --quiet -u "$2" )
+domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
 domain_idn=$(idn -t --quiet -a "$domain")
 ip=$3
 template=${4-default}

+ 3 - 0
bin/v_add_dns_domain_record

@@ -15,10 +15,13 @@
 # Argument defenition
 user=$1
 domain=$(idn -t --quiet -u "$2" )
+domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
 domain_idn=$(idn -t --quiet -a "$domain")
 record=$(idn -t --quiet -u "$3" )
+record=$(echo $record | tr '[:upper:]' '[:lower:]')
 rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]')
 dvalue=$(idn -t --quiet -u "$5" )
+dvalue=$(echo $dvalue | tr '[:upper:]' '[:lower:]')
 id=$6
 
 # Importing variables

+ 126 - 0
bin/v_add_mail_domain

@@ -0,0 +1,126 @@
+#!/bin/bash
+# info: add mail domain
+# options: user domain [antispam] [antivirus]
+#
+# The function adds MAIL domain.
+
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument defenition
+user=$1
+domain=$(idn -t --quiet -u "$2" )
+domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
+domain_idn=$(idn -t --quiet -a "$domain")
+antispam=${3-yes}
+antivirus=${3-yes}
+
+# Importing variables
+source $VESTA/conf/vars.conf
+source $V_CONF/vesta.conf
+source $V_FUNC/shared.func
+source $V_FUNC/domain.func
+
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+# Checking arg number
+check_args '3' "$#" 'user domain [antispam] [antivirus]'
+
+# Checking argument format
+format_validation 'user' 'domain' 'antispam' 'antivirus'
+
+# Checking dns system is enabled
+is_system_enabled 'mail'
+
+# Checking user
+is_user_valid
+
+# Checking user is active
+is_user_suspended
+
+# Checking domain
+is_domain_new 'quiet'
+if [ $? -ne 0 ]; then
+
+    # Checking domain owner
+    is_domain_owner
+
+    # Checking domain service
+    is_dns_domain_free
+fi
+
+# Checking package
+is_package_full 'mail'
+
+exit
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+# Defining variables
+i=1
+ns=$(get_user_value '$NS')
+for nameserver in ${ns//,/ };do
+    eval ns$i=$nameserver
+    i=$((i + 1))
+done
+
+if [ -z "$soa" ]; then
+    soa="$ns1"
+fi
+
+# Adding zone to dns dir
+cat $V_DNSTPL/$template.tpl |\
+    sed -e "s/%ip%/$ip/g" \
+        -e "s/%domain_idn%/$domain_idn/g" \
+        -e "s/%domain%/$domain/g" \
+        -e "s/%ns1%/$ns1/g" \
+        -e "s/%ns2%/$ns2/g" \
+        -e "s/%ns3%/$ns3/g" \
+        -e "s/%ns4%/$ns4/g" \
+        -e "s/%ns5%/$ns5/g" \
+        -e "s/%ns6%/$ns6/g" \
+        -e "s/%ns7%/$ns7/g" \
+        -e "s/%ns8%/$ns8/g" \
+        -e "s/%date%/$V_DATE/g" > $V_USERS/$user/dns/$domain
+
+# Adding dns.conf record
+dns_rec="DOMAIN='$domain' IP='$ip' TPL='$template' TTL='$ttl' EXP='$exp'"
+dns_rec="$dns_rec SOA='$soa' SUSPEND='no' DATE='$V_DATE'"
+echo "$dns_rec" >> $V_USERS/$user/dns.conf
+chmod 660 $V_USERS/$user/dns.conf
+
+# Adding zone in named.conf
+named="zone \"$domain_idn\" {type master; file"
+named="$named \"$V_HOME/$user/conf/dns/$domain.db\";};"
+echo "$named" >> /etc/named.conf
+
+# Updating domain dns zone
+conf="$V_HOME/$user/conf/dns/$domain.db"
+update_domain_zone
+
+chmod 640 $conf
+chown root:named $conf
+
+
+#----------------------------------------------------------#
+#                       Vesta                              #
+#----------------------------------------------------------#
+
+# Increasing domain value
+increase_user_value "$user" '$U_DNS_DOMAINS'
+
+# Adding task to the vesta pipe
+restart_schedule 'dns'
+
+# Logging
+log_history "$V_EVENT" "v_delete_dns_domain $user $domain"
+log_event 'system' "$V_EVENT"
+
+exit

+ 1 - 0
bin/v_add_web_domain

@@ -17,6 +17,7 @@
 # Argument defenition
 user=$1
 domain=$(idn -t --quiet -u "$2" )
+domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
 domain_idn=$(idn -t --quiet -a "$domain")
 ip=$3
 template=${4-default}

+ 2 - 0
bin/v_add_web_domain_alias

@@ -13,8 +13,10 @@
 # Argument defenition
 user=$1
 domain=$(idn -t --quiet -u "$2" )
+domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
 domain_idn=$(idn -t --quiet -a "$domain")
 dom_alias=$(idn -t --quiet -u "$3" )
+dom_alias=$(echo $dom_alias | tr '[:upper:]' '[:lower:]')
 dom_alias_idn=$(idn -t --quiet -a "$dom_alias" )
 
 # Importing variables