Skip to content

Commit c85cf79

Browse files
author
Kristan Kenney
committed
Add v-*-mail-domain-webmail
Enables or removes webmail support for a domain.
1 parent 52ea2ea commit c85cf79

File tree

2 files changed

+151
-0
lines changed

2 files changed

+151
-0
lines changed

bin/v-add-mail-domain-webmail

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
#!/bin/bash
2+
# info: add webmail support for a domain
3+
# options: USER DOMAIN [RESTART]
4+
#
5+
6+
#----------------------------------------------------------#
7+
# Variable&Function #
8+
#----------------------------------------------------------#
9+
10+
# Argument definition
11+
user=$1
12+
domain=$2
13+
restart="$3"
14+
15+
# Additional argument formatting
16+
if [[ "$domain" =~ [[:upper:]] ]]; then
17+
domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]')
18+
fi
19+
if [[ "$domain" =~ ^www\..* ]]; then
20+
domain=$(echo "$domain" |sed -e "s/^www.//")
21+
fi
22+
if [[ "$domain" =~ .*\.$ ]]; then
23+
domain=$(echo "$domain" |sed -e "s/\.$//")
24+
fi
25+
26+
domain=$(idn -t --quiet -u "$domain" )
27+
domain_idn=$(idn -t --quiet -a "$domain")
28+
29+
# Includes
30+
source $HESTIA/func/main.sh
31+
source $HESTIA/func/domain.sh
32+
source $HESTIA/func/ip.sh
33+
source $HESTIA/conf/hestia.conf
34+
35+
# Additional argument formatting
36+
format_domain
37+
format_domain_idn
38+
get_user_ip
39+
40+
#----------------------------------------------------------#
41+
# Verifications #
42+
#----------------------------------------------------------#
43+
44+
check_args '3' "$#" 'USER DOMAIN [RESTART]'
45+
is_format_valid 'user' 'domain'
46+
is_system_enabled "$MAIL_SYSTEM" 'MAIL_SYSTEM'
47+
is_object_valid 'user' 'USER' "$user"
48+
is_object_unsuspended 'user' 'USER' "$user"
49+
is_object_valid 'mail' 'DOMAIN' "$domain"
50+
is_object_unsuspended 'mail' 'DOMAIN' "$domain"
51+
is_object_valid 'web' 'DOMAIN' "$domain"
52+
is_object_unsuspended 'web' 'DOMAIN' "$domain"
53+
54+
#----------------------------------------------------------#
55+
# Action #
56+
#----------------------------------------------------------#
57+
58+
# Add webmail configuration to mail domain
59+
if [ ! -z "$WEB_SYSTEM" ]; then
60+
add_webmail_config "$WEB_SYSTEM" "default.tpl"
61+
fi
62+
if [ ! -z "$PROXY_SYSTEM" ]; then
63+
add_webmail_config "$PROXY_SYSTEM" "default.tpl"
64+
fi
65+
66+
# Enable SSL for webmail if available
67+
if [ '$SSL' = 'yes' ]; then
68+
if [ ! -z "$WEB_SYSTEM" ]; then
69+
add_webmail_config "$WEB_SYSTEM" "default.stpl"
70+
fi
71+
if [ ! -z "$PROXY_SYSTEM" ]; then
72+
add_webmail_config "$PROXY_SYSTEM" "default.stpl"
73+
fi
74+
fi
75+
76+
#----------------------------------------------------------#
77+
# Hestia #
78+
#----------------------------------------------------------#
79+
80+
# Restarting web server
81+
$BIN/v-restart-web $restart
82+
check_result $? "Web restart failed" >/dev/null
83+
84+
$BIN/v-restart-proxy $restart
85+
check_result $? "Proxy restart failed" >/dev/null
86+
87+
# Logging
88+
log_history "enabled webmail support for $domain"
89+
log_event "$OK" "$ARGUMENTS"
90+
91+
exit

bin/v-delete-mail-domain-webmail

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/bin/bash
2+
# info: delete webmail support for a domain
3+
# options: USER DOMAIN [RESTART]
4+
#
5+
# The function delete ssl certificates.
6+
7+
#----------------------------------------------------------#
8+
# Variable&Function #
9+
#----------------------------------------------------------#
10+
11+
# Includes
12+
source $HESTIA/func/main.sh
13+
source $HESTIA/func/domain.sh
14+
source $HESTIA/conf/hestia.conf
15+
16+
# Argument definition
17+
user=$1
18+
domain=$2
19+
restart="$3"
20+
21+
# Additional argument formatting
22+
format_domain
23+
format_domain_idn
24+
25+
#----------------------------------------------------------#
26+
# Verifications #
27+
#----------------------------------------------------------#
28+
29+
check_args '2' "$#" 'USER DOMAIN'
30+
is_format_valid 'user' 'domain'
31+
is_system_enabled "$MAIL_SYSTEM" 'MAIL_SYSTEM'
32+
is_object_valid 'user' 'USER' "$user"
33+
is_object_unsuspended 'user' 'USER' "$user"
34+
is_object_valid 'mail' 'DOMAIN' "$domain"
35+
is_object_unsuspended 'mail' 'DOMAIN' "$domain"
36+
37+
38+
#----------------------------------------------------------#
39+
# Action #
40+
#----------------------------------------------------------#
41+
42+
# Delete webmail configuration
43+
del_webmail_config
44+
45+
#----------------------------------------------------------#
46+
# Hestia #
47+
#----------------------------------------------------------#
48+
49+
# Restarting web server
50+
$BIN/v-restart-web $restart
51+
check_result $? "Web restart failed" >/dev/null
52+
53+
$BIN/v-restart-proxy $restart
54+
check_result $? "Proxy restart failed" >/dev/null
55+
56+
# Logging
57+
log_history "disabled webmail support for $domain"
58+
log_event "$OK" "$ARGUMENTS"
59+
60+
exit

0 commit comments

Comments
 (0)