Skip to content

Commit 0bb4fc1

Browse files
committed
change domain owner
1 parent 0157c7f commit 0bb4fc1

File tree

1 file changed

+156
-0
lines changed

1 file changed

+156
-0
lines changed

bin/v-change-domain-owner

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
#!/bin/bash
2+
# info: change ip owner
3+
# options: DOMAIN USER [IP]
4+
#
5+
# The function of changing domain ownership.
6+
7+
8+
#----------------------------------------------------------#
9+
# Variable&Function #
10+
#----------------------------------------------------------#
11+
12+
# Argument defenition
13+
domain=$1
14+
user=$2
15+
ip=$3
16+
17+
# Includes
18+
source $VESTA/func/ip.sh
19+
source $VESTA/func/main.sh
20+
source $VESTA/conf/vesta.conf
21+
22+
23+
#----------------------------------------------------------#
24+
# Verifications #
25+
#----------------------------------------------------------#
26+
27+
check_args '2' "$#" 'DOMAIN USER [IP]'
28+
validate_format 'domain' 'user'
29+
is_object_valid 'user' 'USER' "$user"
30+
is_object_unsuspended 'user' 'USER' "$user"
31+
if [ ! -z "$ip" ]; then
32+
is_ip_valid
33+
is_ip_avalable
34+
fi
35+
36+
owner=$(v-search-domain-owner $domain)
37+
if [ -z "$owner" ]; then
38+
echo "Error: domain $domain doesn't exist"
39+
log_event "$E_NOTEXIST" "$EVENT"
40+
exit $E_NOTEXIST
41+
fi
42+
if [ "$owner" = "$user" ]; then
43+
exit
44+
fi
45+
46+
47+
#----------------------------------------------------------#
48+
# Action #
49+
#----------------------------------------------------------#
50+
51+
# WEB domain
52+
web_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/web.conf)
53+
if [ ! -z "$web_data" ]; then
54+
$BIN/v-suspend-web-domain $owner $domain >> /dev/null 2>&1
55+
eval $web_data
56+
57+
# Change IP
58+
if [ ! -z "$ip" ]; then
59+
web_data=$(echo "$web_data" | sed -e "s/IP='$IP'/IP='$ip'/")
60+
fi
61+
62+
# Check SSL
63+
if [ "$SSL" = 'yes' ]; then
64+
ssl_crt=$VESTA/data/users/$owner/ssl/$domain.crt
65+
ssl_key=$VESTA/data/users/$owner/ssl/$domain.key
66+
ssl_ca=$VESTA/data/users/$owner/ssl/$domain.ca
67+
ssl_pem=$VESTA/data/users/$owner/ssl/$domain.pem
68+
mv $ssl_crt $VESTA/data/users/$user/ssl/
69+
mv $ssl_key $VESTA/data/users/$user/ssl/
70+
mv $ssl_ca $VESTA/data/users/$user/ssl/ >> /dev/null 2>&1
71+
mv $ssl_pem $VESTA/data/users/$user/ssl/ >> /dev/null 2>&1
72+
rm -f $HOMEDIR/$owner/conf/web/ssl.$domain.*
73+
fi
74+
75+
# Check ftp user account
76+
if [ ! -z "$FTP_USER" ]; then
77+
/usr/sbin/userdel -f $FTP_USER >> /dev/null 2>&1
78+
old_str="FTP_USER='$FTP_USER'"
79+
new_str=$(echo "$old_str" | sed -e "s/${owner}_/${user}_/")
80+
web_data=$(echo "$web_data" | sed -e "s/$old_str/$new_str/")
81+
fi
82+
83+
# Move config
84+
sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/web.conf
85+
echo "$web_data" >> $VESTA/data/users/$user/web.conf
86+
87+
# Move data
88+
mv $HOMEDIR/$owner/web/$domain $HOMEDIR/$user/web/
89+
90+
# Rebuild config
91+
$BIN/v-unsuspend-web-domain $user $domain no >> /dev/null 2>&1
92+
$BIN/v-rebuild-web-domains $owner no
93+
$BIN/v-rebuild-web-domains $user
94+
fi
95+
96+
# DNS domain
97+
dns_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/dns.conf)
98+
if [ ! -z "$dns_data" ]; then
99+
eval $dns_data
100+
101+
# Change IP
102+
if [ ! -z "$ip" ]; then
103+
dns_data=$(echo "$dns_data" | sed -e "s/IP='$IP'/IP='$ip'/")
104+
sed -i "s/$IP/$ip/g" $VESTA/data/users/$owner/dns/$domain.conf
105+
fi
106+
107+
# Move config
108+
sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/dns.conf
109+
echo "$dns_data" >> $VESTA/data/users/$user/dns.conf
110+
111+
# Move dns records
112+
mv $VESTA/data/users/$owner/dns/$domain.conf \
113+
$VESTA/data/users/$user/dns/
114+
115+
# Rebuild config
116+
$BIN/v-unsuspend-dns-domain $user $domain no >> /dev/null 2>&1
117+
$BIN/v-rebuild-dns-domains $owner no
118+
$BIN/v-rebuild-dns-domains $user
119+
fi
120+
121+
# MAIL domain
122+
mail_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/mail.conf)
123+
if [ ! -z "$mail_data" ]; then
124+
125+
# Move config
126+
sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/mail.conf
127+
echo "$mail_data" >> $VESTA/data/users/$user/mail.conf
128+
mv -f $VESTA/data/users/$owner/mail/$domain.conf \
129+
$VESTA/data/users/$user/mail/
130+
131+
# Move DKIM
132+
if [ -e "$VESTA/data/users/$owner/mail/$domain.pem" ]; then
133+
mv -f $VESTA/data/users/$owner/mail/$domain.pem \
134+
$VESTA/data/users/$user/mail/
135+
mv -f $VESTA/data/users/$owner/mail/$domain.pub \
136+
$VESTA/data/users/$user/mail/
137+
fi
138+
139+
# Move data
140+
mv $HOMEDIR/$owner/mail/$domain $HOMEDIR/$user/mail/
141+
142+
# Rebuild config
143+
$BIN/v-unsuspend-mail-domain $user $domain no >> /dev/null 2>&1
144+
$BIN/v-rebuild-mail-domains $owner no
145+
$BIN/v-rebuild-mail-domains $user
146+
fi
147+
148+
149+
#----------------------------------------------------------#
150+
# Vesta #
151+
#----------------------------------------------------------#
152+
153+
# Logging
154+
log_event "$OK" "$EVENT"
155+
156+
exit

0 commit comments

Comments
 (0)