Serghey Rodin 12 лет назад
Родитель
Сommit
0bb4fc1f4e
1 измененных файлов с 156 добавлено и 0 удалено
  1. 156 0
      bin/v-change-domain-owner

+ 156 - 0
bin/v-change-domain-owner

@@ -0,0 +1,156 @@
+#!/bin/bash
+# info: change ip owner
+# options: DOMAIN USER [IP]
+#
+# The function of changing domain ownership.
+
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument defenition
+domain=$1
+user=$2
+ip=$3
+
+# Includes
+source $VESTA/func/ip.sh
+source $VESTA/func/main.sh
+source $VESTA/conf/vesta.conf
+
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'DOMAIN USER [IP]'
+validate_format 'domain' 'user'
+is_object_valid 'user' 'USER' "$user"
+is_object_unsuspended 'user' 'USER' "$user"
+if [ ! -z "$ip" ]; then
+    is_ip_valid
+    is_ip_avalable
+fi
+
+owner=$(v-search-domain-owner $domain)
+if [ -z "$owner" ]; then
+    echo "Error: domain $domain doesn't exist"
+    log_event "$E_NOTEXIST" "$EVENT"
+    exit $E_NOTEXIST
+fi
+if [ "$owner" = "$user" ]; then
+    exit
+fi
+
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+# WEB domain
+web_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/web.conf)
+if [ ! -z "$web_data" ]; then
+    $BIN/v-suspend-web-domain $owner $domain >> /dev/null 2>&1
+    eval $web_data
+
+    # Change IP
+    if [ ! -z "$ip" ]; then
+        web_data=$(echo "$web_data" | sed -e "s/IP='$IP'/IP='$ip'/")
+    fi
+
+    # Check SSL
+    if [ "$SSL" = 'yes' ]; then
+        ssl_crt=$VESTA/data/users/$owner/ssl/$domain.crt
+        ssl_key=$VESTA/data/users/$owner/ssl/$domain.key
+        ssl_ca=$VESTA/data/users/$owner/ssl/$domain.ca
+        ssl_pem=$VESTA/data/users/$owner/ssl/$domain.pem
+        mv $ssl_crt $VESTA/data/users/$user/ssl/
+        mv $ssl_key $VESTA/data/users/$user/ssl/
+        mv $ssl_ca $VESTA/data/users/$user/ssl/ >> /dev/null 2>&1
+        mv $ssl_pem $VESTA/data/users/$user/ssl/ >> /dev/null 2>&1
+        rm -f $HOMEDIR/$owner/conf/web/ssl.$domain.*
+    fi
+
+    # Check ftp user account
+    if [ ! -z "$FTP_USER" ]; then
+        /usr/sbin/userdel -f  $FTP_USER >> /dev/null 2>&1
+        old_str="FTP_USER='$FTP_USER'"
+        new_str=$(echo "$old_str" | sed -e "s/${owner}_/${user}_/")
+        web_data=$(echo "$web_data" | sed -e "s/$old_str/$new_str/")
+    fi
+
+    # Move config
+    sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/web.conf
+    echo "$web_data" >> $VESTA/data/users/$user/web.conf
+
+    # Move data
+    mv $HOMEDIR/$owner/web/$domain $HOMEDIR/$user/web/
+
+    # Rebuild config
+    $BIN/v-unsuspend-web-domain $user $domain no >> /dev/null 2>&1
+    $BIN/v-rebuild-web-domains $owner no
+    $BIN/v-rebuild-web-domains $user
+fi
+
+# DNS domain
+dns_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/dns.conf)
+if [ ! -z "$dns_data" ]; then
+    eval $dns_data
+
+    # Change IP
+    if [ ! -z "$ip" ]; then
+        dns_data=$(echo "$dns_data" | sed -e "s/IP='$IP'/IP='$ip'/")
+        sed -i "s/$IP/$ip/g" $VESTA/data/users/$owner/dns/$domain.conf
+    fi
+
+    # Move config
+    sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/dns.conf
+    echo "$dns_data" >> $VESTA/data/users/$user/dns.conf
+
+    # Move dns records
+    mv $VESTA/data/users/$owner/dns/$domain.conf \
+        $VESTA/data/users/$user/dns/
+
+    # Rebuild config
+    $BIN/v-unsuspend-dns-domain $user $domain no >> /dev/null 2>&1
+    $BIN/v-rebuild-dns-domains $owner no
+    $BIN/v-rebuild-dns-domains $user
+fi
+
+# MAIL domain
+mail_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/mail.conf)
+if [ ! -z "$mail_data" ]; then
+
+    # Move config
+    sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/mail.conf
+    echo "$mail_data" >> $VESTA/data/users/$user/mail.conf
+    mv -f $VESTA/data/users/$owner/mail/$domain.conf \
+        $VESTA/data/users/$user/mail/
+
+    # Move DKIM
+    if [ -e "$VESTA/data/users/$owner/mail/$domain.pem" ]; then
+        mv -f $VESTA/data/users/$owner/mail/$domain.pem \
+            $VESTA/data/users/$user/mail/
+        mv -f $VESTA/data/users/$owner/mail/$domain.pub \
+            $VESTA/data/users/$user/mail/
+    fi
+
+    # Move data
+    mv $HOMEDIR/$owner/mail/$domain $HOMEDIR/$user/mail/
+
+    # Rebuild config
+    $BIN/v-unsuspend-mail-domain $user $domain no >> /dev/null 2>&1
+    $BIN/v-rebuild-mail-domains $owner no
+    $BIN/v-rebuild-mail-domains $user
+fi
+
+
+#----------------------------------------------------------#
+#                       Vesta                              #
+#----------------------------------------------------------#
+
+# Logging
+log_event "$OK" "$EVENT"
+
+exit