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
0 commit comments