diff --git a/bin/v_add_database b/bin/v_add_database index 3adc2648a..b45656abd 100755 --- a/bin/v_add_database +++ b/bin/v_add_database @@ -68,7 +68,7 @@ increase_dbhost_values increase_user_value "$user" '$U_DATABASES' # Adding db to db conf -str="DB='$database' DBUSER='$dbuser' HOST='$host' TYPE='$type'" +str="DB='$database' DBUSER='$dbuser' MD5='$md5' HOST='$host' TYPE='$type'" str="$str CHARSET='$charset' U_DISK='0' SUSPENDED='no' TIME='$TIME'" str="$str DATE='$DATE'" echo "$str" >> $USER_DATA/db.conf diff --git a/bin/v_add_dns_domain_record b/bin/v_add_dns_domain_record index 4ff4daa67..5a9c7c277 100755 --- a/bin/v_add_dns_domain_record +++ b/bin/v_add_dns_domain_record @@ -61,6 +61,7 @@ zone="$USER_DATA/dns/$domain.conf" dns_rec="ID='$id' RECORD='$record' TYPE='$rtype' PRIORITY='$priority'" dns_rec="$dns_rec VALUE='$dvalue' SUSPENDED='no' TIME='$TIME' DATE='$DATE'" echo "$dns_rec" >> $zone +chmod 660 $zone # Sorting records sort_dns_records diff --git a/bin/v_add_mail_account b/bin/v_add_mail_account index 79dea41d4..f6c873aa6 100755 --- a/bin/v_add_mail_account +++ b/bin/v_add_mail_account @@ -18,7 +18,7 @@ account=$3 password=$4 quota=${5-0} -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -28,39 +28,22 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number -check_args '4' "$#" 'user domain account password quota' - -# Checking argument format +check_args '4' "$#" 'user domain account password [quota]' validate_format 'user' 'domain' 'account' 'password' 'quota' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking package +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" is_package_full 'MAIL_ACCOUNTS' - -# Checking account -is_mail_account_free +is_mail_new "$account" #----------------------------------------------------------# # Action # #----------------------------------------------------------# -password=$(/usr/sbin/dovecotpw -s md5 -p "$password") -str="$account:$password:$user:mail::$HOMEDIR/$user:$quota" +md5=$(/usr/sbin/dovecotpw -s md5 -p "$password") +str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota" echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd @@ -69,17 +52,21 @@ echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd #----------------------------------------------------------# str="ACCOUNT='$account' ALIAS='' QUOTA='$quota' AUTOREPLY='no' FWD=''" -str="$str U_DISK='0' SUSPENDED='no' DATE='$DATE'" +str="$str MD5='$md5' U_DISK='0' SUSPENDED='no' TIME='$TIME' DATE='$DATE'" echo "$str" >> $USER_DATA/mail/$domain.conf +chmod 660 $USER_DATA/mail/$domain.conf # Increase mail accounts counter -accounts=$(wc -l $USER_DATA/mail/$domain.conf|cut -f 1 -d ' ') +accounts=$(wc -l $USER_DATA/mail/$domain.conf | cut -f 1 -d ' ') increase_user_value "$user" '$U_MAIL_ACCOUNTS' -update_domain_value 'mail' '$ACCOUNTS' "$accounts" +update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accounts" + +# Hiding password +EVENT="DATE='$DATE' TIME='$TIME' COMMAND='$SCRIPT'" +EVENT="$EVENT ARGUMENTS='$user $domain ***** $quota'" # Logging -EVENT="$DATE $SCRIPT $user $domain ***** $quota" -log_history "$EVENT" "v_delete_mail_account $user $domain $account" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_add_mail_account_alias b/bin/v_add_mail_account_alias index c8f2f3311..d5c9f0bf0 100755 --- a/bin/v_add_mail_account_alias +++ b/bin/v_add_mail_account_alias @@ -17,7 +17,7 @@ domain_idn=$(idn -t --quiet -a "$domain") account=$3 malias=$4 -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -27,32 +27,16 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '4' "$#" 'user domain account alias' - -# Checking argument format validate_format 'user' 'domain' 'account' 'malias' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking account -is_mail_account_valid - -# Checking account -is_mail_account_free "$malias" +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_valid "mail/$domain" 'ACCOUNT' "$account" +is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account" +is_mail_new "$malias" #----------------------------------------------------------# @@ -60,7 +44,7 @@ is_mail_account_free "$malias" #----------------------------------------------------------# # Adding exim alias -str="$mailas@$domain:$account@$domain" +str="$malias@$domain:$account@$domain" echo "$str" >> $HOMEDIR/$user/conf/mail/$domain/aliases @@ -69,17 +53,16 @@ echo "$str" >> $HOMEDIR/$user/conf/mail/$domain/aliases #----------------------------------------------------------# # Adding vesta alias -aliases=$(get_domain_value "mail/$domain" '$ALIAS' "ACCOUNT='$account'") +aliases=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$ALIAS') if [ -z "$aliases" ]; then aliases="$malias" else aliases="$aliases,$malias" fi -update_domain_value "mail/$domain" '$ALIAS' "$aliases" "ACCOUNT='$account'" +update_object_value "mail/$domain" 'ACCOUNT' "$account" '$ALIAS' "$aliases" # Logging -cmd='v_delete_mail_account_alias' -log_history "$EVENT" "$cmd $user $domain $account $malias" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_add_mail_account_autoreply b/bin/v_add_mail_account_autoreply index ca2c1c63b..d02ed07a7 100755 --- a/bin/v_add_mail_account_autoreply +++ b/bin/v_add_mail_account_autoreply @@ -15,9 +15,9 @@ domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") account=$3 -malias=$4 +autoreply=$4 -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -26,25 +26,26 @@ source $VESTA/func/domain.sh #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# -check_args '4' "$#" 'user domain account alias' -validate_format 'user' 'domain' 'account' 'malias' -is_system_enabled 'MAIL_SYSTEM' + +check_args '4' "$#" 'user domain account autoreply' +validate_format 'user' 'domain' 'account' 'autoreply' +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_valid 'mail' 'DOMAIN' "$domain" is_object_unsuspended 'mail' 'DOMAIN' "$domain" is_object_valid "mail/$domain" 'ACCOUNT' "$account" is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account" -is_key_empty "mail/$domain" '' '$AUTOREPLY' -exit +is_object_value_empty "mail/$domain" 'ACCOUNT' "$domain" '$AUTOREPLY' + #----------------------------------------------------------# # Action # #----------------------------------------------------------# -exit -# Adding exim alias -str="$mailas@$domain:$account@$domain" -echo "$str" >> $HOMEDIR/$user/conf/mail/$domain/aliases +# Add exim autoreply +echo -e "$autoreply" > $HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg +chown -R root:mail $HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg +chmod 660 $HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg #----------------------------------------------------------# @@ -52,17 +53,12 @@ echo "$str" >> $HOMEDIR/$user/conf/mail/$domain/aliases #----------------------------------------------------------# # Adding vesta alias -aliases=$(get_domain_value "mail/$domain" '$ALIAS' "ACCOUNT='$account'") -if [ -z "$aliases" ]; then - aliases="$malias" -else - aliases="$aliases,$malias" -fi -update_domain_value "mail/$domain" '$ALIAS' "$aliases" "ACCOUNT='$account'" +echo -e "$autoreply" > $USER_DATA/mail/$account@$domain.msg +chmod 660 $USER_DATA/mail/$account@$domain.msg +update_object_value "mail/$domain" 'ACCOUNT' "$domain" '$AUTOREPLY' 'yes' # Logging -cmd='v_delete_mail_account_alias' -log_history "$EVENT" "$cmd $user $domain $account $malias" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_add_mail_domain b/bin/v_add_mail_domain index 9149c6c91..3056e4b71 100755 --- a/bin/v_add_mail_domain +++ b/bin/v_add_mail_domain @@ -19,7 +19,7 @@ antivirus=${4-yes} dkim=${5-yes} dkim_size=${6-512} -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -29,25 +29,12 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain [antispam] [antivirus] [dkim] [dkim_size]' - -# Checking argument format validate_format 'user' 'domain' 'antispam' 'antivirus' 'dkim' 'dkim_size' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain is_domain_new 'mail' - -# Checking package is_package_full 'MAIL_DOMAINS' @@ -92,7 +79,7 @@ if [ "$dkim" = 'yes' ]; then chmod 660 $HOMEDIR/$user/conf/mail/$domain/dkim.pem # Adding dkim dns records - check_dns_domain=$(is_domain_valid 'dns') + check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain") if [ "$?" -eq 0 ]; then p=$(cat $USER_DATA/mail/$domain.pub|grep -v ' KEY---'|tr -d '\n') record='_domainkey' @@ -107,7 +94,9 @@ fi # Adding domain to vesta db s="DOMAIN='$domain' ANTIVIRUS='$antivirus' ANTISPAM='$antispam' DKIM='$dkim'" -s="$s ACCOUNTS='0' U_DISK='0' CATCHALL='' SUSPENDED='no' DATE='$DATE'" +s="$s ACCOUNTS='0' U_DISK='0' CATCHALL='' SUSPENDED='no' TIME='$TIME'" +s="$s DATE='$DATE'" + echo $s >> $USER_DATA/mail.conf touch $USER_DATA/mail/$domain.conf chmod 660 $USER_DATA/mail.conf @@ -122,7 +111,7 @@ chmod 660 $USER_DATA/mail/$domain.conf increase_user_value "$user" '$U_MAIL_DOMAINS' # Logging -log_history "$EVENT" "v_delete_mail_domain $user $domain" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_add_mail_domain_antispam b/bin/v_add_mail_domain_antispam index 1ed832419..00524dcf4 100755 --- a/bin/v_add_mail_domain_antispam +++ b/bin/v_add_mail_domain_antispam @@ -15,7 +15,7 @@ domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -25,29 +25,14 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking errorlog is not added -is_domain_key_empty 'mail' '$ANTISPAM' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_value_empty 'mail' 'DOMAIN' "$domain" '$ANTISPAM' #----------------------------------------------------------# @@ -55,7 +40,7 @@ is_domain_key_empty 'mail' '$ANTISPAM' #----------------------------------------------------------# # Adding antispam key to config -if [ -z "$(grep 'antispam' $HOMEDIR/$user/conf/mail/$domain/protection)" ]; then +if [ -z "$(grep spam $HOMEDIR/$user/conf/mail/$domain/protection)" ]; then echo 'antispam' >> $HOMEDIR/$user/conf/mail/$domain/protection fi @@ -64,10 +49,10 @@ fi #----------------------------------------------------------# # Adding antispam in config -update_domain_value 'mail' '$ANTISPAM' 'yes' +update_object_value 'mail' 'DOMAIN' "$domain" '$ANTISPAM' 'yes' # Logging -log_history "$EVENT" "v_delete_mail_domain_antispam $user $domain" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_add_mail_domain_antivirus b/bin/v_add_mail_domain_antivirus index 7e0790640..7a84614a2 100755 --- a/bin/v_add_mail_domain_antivirus +++ b/bin/v_add_mail_domain_antivirus @@ -15,7 +15,7 @@ domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -25,29 +25,14 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking current value -is_domain_key_empty 'mail' '$ANTIVIRUS' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_value_empty 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS' #----------------------------------------------------------# @@ -59,15 +44,16 @@ if [ -z "$(grep 'virus' $HOMEDIR/$user/conf/mail/$domain/protection)" ]; then echo 'antivirus' >> $HOMEDIR/$user/conf/mail/$domain/protection fi + #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Adding antivirus in config -update_domain_value 'mail' '$ANTIVIRUS' 'yes' +update_object_value 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS' 'yes' # Logging -log_history "$EVENT" "v_delete_mail_domain_antivirus $user $domain" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_add_mail_domain_cactchall b/bin/v_add_mail_domain_cactchall index d9f71ff3e..b6e68fd95 100755 --- a/bin/v_add_mail_domain_cactchall +++ b/bin/v_add_mail_domain_cactchall @@ -16,7 +16,7 @@ domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") email="$3" -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -26,29 +26,14 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '3' "$#" 'user domain email' - -# Checking argument format validate_format 'user' 'domain' 'email' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking errorlog is not added -is_domain_key_empty 'mail' '$CATCHALL' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_value_empty 'mail' 'DOMAIN' "$domain" '$CATCHALL' #----------------------------------------------------------# @@ -56,8 +41,8 @@ is_domain_key_empty 'mail' '$CATCHALL' #----------------------------------------------------------# # Adding catchall alias -sed -i "/*@demo.vestacp.com:/d" $HOMEDIR/$user/conf/mail/$domain/aliases -echo "*@demo.vestacp.com:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases +sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases +echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases #----------------------------------------------------------# @@ -65,10 +50,11 @@ echo "*@demo.vestacp.com:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases #----------------------------------------------------------# # Adding antispam in config -update_domain_value 'mail' '$CATCHALL' "$email" +update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email" + # Logging -log_history "$EVENT" "v_delete_mail_domain_catchall $user $domain" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_add_mail_domain_dkim b/bin/v_add_mail_domain_dkim index a5fbb9420..97d55ac50 100755 --- a/bin/v_add_mail_domain_dkim +++ b/bin/v_add_mail_domain_dkim @@ -16,7 +16,7 @@ domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") dkim_size=${3-512} -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -26,29 +26,14 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain [dkim_size]' - -# Checking argument format validate_format 'user' 'domain' 'dkim_size' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking errorlog is not added -is_domain_key_empty 'mail' '$DKIM' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_value_empty 'mail' 'DOMAIN' "$domain" '$DKIM' #----------------------------------------------------------# @@ -67,7 +52,7 @@ chown root:mail $HOMEDIR/$user/conf/mail/$domain/dkim.pem chmod 660 $HOMEDIR/$user/conf/mail/$domain/dkim.pem # Checking dns domain -check_dns_domain=$(is_domain_valid 'dns') +check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain") if [ "$?" -eq 0 ]; then # Adding dkim dns records p=$(cat $USER_DATA/mail/$domain.pub|grep -v ' KEY---'|tr -d '\n') @@ -86,10 +71,10 @@ fi #----------------------------------------------------------# # Adding dkim in config -update_domain_value 'mail' '$DKIM' 'yes' +update_object_value 'mail' 'DOMAIN' "$domain" '$DKIM' 'yes' # Logging -log_history "$EVENT" "v_delete_mail_domain_dkim $user $domain" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_add_user b/bin/v_add_user index 2d47373cf..b434a35a2 100755 --- a/bin/v_add_user +++ b/bin/v_add_user @@ -172,6 +172,7 @@ PACKAGE='$package' $package_data CONTACT='$email' CRON_REPORTS='yes' +MD5='$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow)' RKEY='$(gen_password)' SUSPENDED='no' SUSPENDED_USERS='0' diff --git a/bin/v_add_web_domain b/bin/v_add_web_domain index 0e67f9289..a43c61a88 100755 --- a/bin/v_add_web_domain +++ b/bin/v_add_web_domain @@ -182,8 +182,8 @@ increase_user_value "$user" '$U_WEB_ALIASES' # Defining domain variables str="DOMAIN='$domain' IP='$ip' IP6='' ALIAS='$aliases' TPL='$template'" str="$str $template_data SSL='no' SSL_HOME='single' NGINX='' NGINX_EXT=''" -str="$str STATS='' STATS_USER='' U_DISK='0' U_BANDWIDTH='0' SUSPENDED='no'" -str="$str TIME='$TIME' DATE='$DATE'" +str="$str STATS='' STATS_USER='' STATS_CRYPT='' U_DISK='0' U_BANDWIDTH='0'" +str="$str SUSPENDED='no' TIME='$TIME' DATE='$DATE'" # Registering domain echo "$str" >> $USER_DATA/web.conf diff --git a/bin/v_add_web_domain_stats_user b/bin/v_add_web_domain_stats_user index cd64b07f4..3ccab0d0a 100755 --- a/bin/v_add_web_domain_stats_user +++ b/bin/v_add_web_domain_stats_user @@ -32,7 +32,7 @@ is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_valid 'web' 'DOMAIN' "$domain" is_object_unsuspended 'web' 'DOMAIN' "$domain" -is_object_value_empty 'web' 'DOMAIN' "$domain" '$STATS_USER' +is_object_value_exist 'web' 'DOMAIN' "$domain" '$STATS' #----------------------------------------------------------# @@ -52,7 +52,7 @@ Require valid-user" > $stats_dir/.htaccess # Generating htaccess user and password rm -f $stats_dir/.htpasswd htpasswd -bc $stats_dir/.htpasswd "$stats_user" "$stats_pass" &>/dev/null - +stats_crypt=$(grep $stats_user: $stats_dir/.htpasswd |cut -f 2 -d :) #----------------------------------------------------------# # Vesta # @@ -60,6 +60,7 @@ htpasswd -bc $stats_dir/.htpasswd "$stats_user" "$stats_pass" &>/dev/null # Adding stats user in config update_object_value 'web' 'DOMAIN' "$domain" '$STATS_USER' "$stats_user" +update_object_value 'web' 'DOMAIN' "$domain" '$STATS_CRYPT' "$stats_crypt" # Hiding password EVENT="DATE='$DATE' TIME='$TIME' COMMAND='$SCRIPT'" diff --git a/bin/v_change_database_password b/bin/v_change_database_password index 155042db2..442789956 100755 --- a/bin/v_change_database_password +++ b/bin/v_change_database_password @@ -50,6 +50,9 @@ esac # Vesta # #----------------------------------------------------------# +# Update config value +update_object_value 'db' 'DB' "$database" '$MD5' "$md5" + # Hiding password EVENT="DATE='$DATE' TIME='$TIME' COMMAND='$SCRIPT'" EVENT="$EVENT ARGUMENTS='$user $database *****'" diff --git a/bin/v_change_mail_domain_cactchall b/bin/v_change_mail_domain_cactchall index 9d7beda90..35b9948bd 100755 --- a/bin/v_change_mail_domain_cactchall +++ b/bin/v_change_mail_domain_cactchall @@ -16,7 +16,7 @@ domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") email="$3" -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -26,38 +26,22 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '3' "$#" 'user domain email' - -# Checking argument format validate_format 'user' 'domain' 'email' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# # Action # #----------------------------------------------------------# -# Get old catchall -catchall=$(get_domain_value 'mail' '$CATCHALL') - # Change cathcall alias -sed -i "/*@demo.vestacp.com:/d" $HOMEDIR/$user/conf/mail/$domain/aliases -echo "*@demo.vestacp.com:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases +sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases +echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases #----------------------------------------------------------# @@ -65,10 +49,11 @@ echo "*@demo.vestacp.com:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases #----------------------------------------------------------# # Change catchall in config -update_domain_value 'mail' '$CATCHALL' "$email" +update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email" + # Logging -log_history "$EVENT" "v_change_mail_domain_catchall $user $domain $catchall" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_change_user_package b/bin/v_change_user_package index 007c73d7b..83716539a 100755 --- a/bin/v_change_user_package +++ b/bin/v_change_user_package @@ -75,6 +75,7 @@ SHELL='$SHELL' BACKUPS='$BACKUPS' CONTACT='$CONTACT' CRON_REPORTS='$CRON_REPORTS' +MD5='$MD5' RKEY='$RKEY' SUSPENDED='$SUSPENDED' SUSPENDED_USERS='$SUSPENDED_USERS' diff --git a/bin/v_change_user_password b/bin/v_change_user_password index c1cc7b4ae..bce75182a 100755 --- a/bin/v_change_user_password +++ b/bin/v_change_user_password @@ -34,6 +34,7 @@ is_object_unsuspended 'user' 'USER' "$user" # Changing user password echo "$password" | /usr/bin/passwd "$user" --stdin &>/dev/null +md5=$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow) #----------------------------------------------------------# @@ -42,6 +43,7 @@ echo "$password" | /usr/bin/passwd "$user" --stdin &>/dev/null # Changing RKEY value update_user_value "$user" '$RKEY' "$(gen_password)" +update_user_value "$user" '$MD5' "$md5" # Hiding password EVENT="DATE='$DATE' TIME='$TIME' COMMAND='$SCRIPT' ARGUMENTS='$user *****'" diff --git a/bin/v_delete_mail_domain b/bin/v_delete_mail_domain index e75a69af8..6fe75d597 100755 --- a/bin/v_delete_mail_domain +++ b/bin/v_delete_mail_domain @@ -14,7 +14,7 @@ user=$1 domain=$(idn -t --quiet -u "$2" ) -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -24,23 +24,13 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking web system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain exist -is_domain_valid 'mail' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# @@ -65,15 +55,14 @@ sed -i "/DOMAIN='$domain'/ d" $USER_DATA/mail.conf rm -f $USER_DATA/mail/$domain.conf rm -f $USER_DATA/mail/$domain.pem rm -f $USER_DATA/mail/$domain.pub -# autoreply +rm -f $USER_DATA/mail/*@$domain.msg # Decreasing domain value decrease_user_value "$user" '$U_MAIL_DOMAINS' decrease_user_value "$user" '$U_MAIL_ACCOUNTS' "$accounts" # Logging -cmd='"v_add_mail_domain' -log_history "$EVENT" "$cmd $user $domain $ANTISPAM $ANTIVIRUS $DKIM" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_delete_mail_domain_antispam b/bin/v_delete_mail_domain_antispam index 57a8dc5f8..de8e5acf3 100755 --- a/bin/v_delete_mail_domain_antispam +++ b/bin/v_delete_mail_domain_antispam @@ -15,7 +15,7 @@ domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -25,29 +25,14 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking current value -is_domain_value_exist 'mail' '$ANTISPAM' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_value_exist 'mail' 'DOMAIN' "$domain" '$ANTISPAM' #----------------------------------------------------------# @@ -63,10 +48,10 @@ sed -i "/antispam/d" $HOMEDIR/$user/conf/mail/$domain/protection #----------------------------------------------------------# # Delete antispam in config -update_domain_value 'mail' '$ANTISPAM' 'no' +update_object_value 'mail' 'DOMAIN' "$domain" '$ANTISPAM' 'no' # Logging -log_history "$EVENT" "v_add_mail_domain_antispam $user $domain" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_delete_mail_domain_antivirus b/bin/v_delete_mail_domain_antivirus index c2413ce5f..137e79c7d 100755 --- a/bin/v_delete_mail_domain_antivirus +++ b/bin/v_delete_mail_domain_antivirus @@ -15,7 +15,7 @@ domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -25,29 +25,14 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking current value -is_domain_value_exist 'mail' '$ANTIVIRUS' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_value_exist 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS' #----------------------------------------------------------# @@ -63,10 +48,10 @@ sed -i "/antivirus/d" $HOMEDIR/$user/conf/mail/$domain/protection #----------------------------------------------------------# # Delete antivirus in config -update_domain_value 'mail' '$ANTIVIRUS' 'no' +update_object_value 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS' 'no' # Logging -log_history "$EVENT" "v_add_mail_domain_antivirus $user $domain" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_delete_mail_domain_cactchall b/bin/v_delete_mail_domain_cactchall index 668700717..b9b32b93f 100755 --- a/bin/v_delete_mail_domain_cactchall +++ b/bin/v_delete_mail_domain_cactchall @@ -15,7 +15,7 @@ domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -25,40 +25,22 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking current value -is_domain_value_exist 'mail' '$CATCHALL' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_value_exist 'mail' 'DOMAIN' "$domain" '$CATCHALL' #----------------------------------------------------------# # Action # #----------------------------------------------------------# -# Get old catchall -email=$(get_domain_value 'mail' '$CATCHALL') - # Delete cathcall alias -sed -i "/*@demo.vestacp.com:/d" $HOMEDIR/$user/conf/mail/$domain/aliases +sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases #----------------------------------------------------------# @@ -66,10 +48,10 @@ sed -i "/*@demo.vestacp.com:/d" $HOMEDIR/$user/conf/mail/$domain/aliases #----------------------------------------------------------# # Delete catchall in config -update_domain_value 'mail' '$CATCHALL' '' +update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' '' # Logging -log_history "$EVENT" "v_add_mail_domain_catchall $user $domain $email" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_delete_mail_domain_dkim b/bin/v_delete_mail_domain_dkim index cae1bbfa2..e35b23e56 100755 --- a/bin/v_delete_mail_domain_dkim +++ b/bin/v_delete_mail_domain_dkim @@ -14,7 +14,7 @@ user=$1 domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -24,29 +24,14 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' - -# Checking errorlog is not added -is_domain_value_exist 'mail' '$DKIM' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" +is_object_value_exist 'mail' 'DOMAIN' "$domain" '$DKIM' #----------------------------------------------------------# @@ -59,10 +44,10 @@ rm -f $USER_DATA/mail/$domain.pub rm -f $HOMEDIR/$user/conf/mail/$domain/dkim.pem # Checking dns domain -check_dns_domain=$(is_domain_valid 'dns') +check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain") if [ "$?" -eq 0 ]; then records=$($BIN/v_list_dns_domain_records $user $domain plain) - dkim_records=$(echo "$records" |grep -w '_domainkey'|cut -f 1 -d ' ') + dkim_records=$(echo "$records" |grep -w '_domainkey' | cut -f 1 -d ' ') for id in $dkim_records; do $BIN/v_delete_dns_domain_record $user $domain $id done @@ -73,11 +58,11 @@ fi # Vesta # #----------------------------------------------------------# -# Adding dkim in config -update_domain_value 'mail' '$DKIM' 'no' +# Updatoing config +update_object_value 'mail' 'DOMAIN' "$domain" '$DKIM' 'no' # Logging -log_history "$EVENT" "v_add_mail_domain_dkim $user $domain" +log_history "$EVENT" log_event "$OK" "$EVENT" exit diff --git a/bin/v_delete_web_domain_stats_user b/bin/v_delete_web_domain_stats_user index 4b2825e5e..8aa67f77b 100755 --- a/bin/v_delete_web_domain_stats_user +++ b/bin/v_delete_web_domain_stats_user @@ -51,6 +51,8 @@ rm -f $HOMEDIR/$user/web/$domain/stats/.htaccess # Update config update_object_value 'web' 'DOMAIN' "$domain" '$STATS_USER' '' +update_object_value 'web' 'DOMAIN' "$domain" '$STATS_CRYPT' '' + # Logging log_history "$EVENT" diff --git a/bin/v_list_mail_accounts b/bin/v_list_mail_accounts index 104f2a7fb..53124e3fc 100755 --- a/bin/v_list_mail_accounts +++ b/bin/v_list_mail_accounts @@ -14,7 +14,7 @@ user=$1 domain=$2 format=${3-shell} -# Importing variables +# Includes source $VESTA/func/shared.sh @@ -22,27 +22,18 @@ source $VESTA/func/shared.sh # Verifications # #----------------------------------------------------------# -# Checking args check_args '2' "$#" 'user domain [format]' - -# Checking argument format validate_format 'user' 'domain' - -# Checking user is_object_valid 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' +is_object_valid 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# # Action # #----------------------------------------------------------# -# Defining config -conf=$USER_DATA/mail/$domain.conf - # Defining fileds to select +conf=$USER_DATA/mail/$domain.conf fields="\$ACCOUNT \$ALIAS \$FWD \$AUTOREPLY \$U_DISK \$SUSPENDED \$DATE" # Listing domain accounts diff --git a/bin/v_list_mail_domain b/bin/v_list_mail_domain index c17a5d94f..227bbfced 100755 --- a/bin/v_list_mail_domain +++ b/bin/v_list_mail_domain @@ -15,7 +15,7 @@ user=$1 domain=$2 format=${3-shell} -# Importing variables +# Includes source $VESTA/func/shared.sh # Json function @@ -23,19 +23,10 @@ json_list_domain() { i=1 fileds_count=$(echo "$fields" | wc -w) line=$(grep "DOMAIN='$domain'" $conf) - - # Print top bracket echo '{' - - # Assing key=value eval $line - - # Starting output loop for field in $fields; do - # Parsing key=value eval value=$field - - # Checking first field if [ "$i" -eq 1 ]; then echo -e "\t\"$value\": {" else @@ -45,26 +36,19 @@ json_list_domain() { echo -e "\t\t\"${field//$/}\": \"$value\"" fi fi - # Updating iterator (( ++i)) done - # If there was any output if [ -n "$value" ]; then echo -e ' }' fi - # Printing bottom json bracket echo -e "}" } # Shell function shell_list_domain() { line=$(grep "DOMAIN='$domain'" $conf) - - # Parsing key=value eval $line - - # Print result line for field in $fields; do eval key="$field" echo "${field//$/}: $key " @@ -76,24 +60,17 @@ shell_list_domain() { # Verifications # #----------------------------------------------------------# -# Checking args check_args '2' "$#" 'user domain [format]' - -# Checking user is_object_valid 'user' 'USER' "$user" - -# Checking domain exist -is_domain_valid 'mail' +is_object_valid 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# # Action # #----------------------------------------------------------# -# Defining config -conf=$USER_DATA/mail.conf - # Defining fileds to select +conf=$USER_DATA/mail.conf fields='$DOMAIN $ANTIVIRUS $ANTISPAM $DKIM $ACCOUNTS $U_DISK $CATCHALL $SUSPENDED $DATE' diff --git a/bin/v_list_mail_domain_dkim b/bin/v_list_mail_domain_dkim index 31c928868..55f459fe6 100755 --- a/bin/v_list_mail_domain_dkim +++ b/bin/v_list_mail_domain_dkim @@ -14,7 +14,7 @@ user=$1 domain=$2 format=${3-shell} -# Importing variables +# Includes source $VESTA/func/shared.sh # Json function @@ -41,14 +41,9 @@ shell_list_ssl() { # Verifications # #----------------------------------------------------------# -# Checking args check_args '2' "$#" 'user domain [format]' - -# Checking user is_object_valid 'user' 'USER' "$user" - -# Checking domain exist -is_domain_valid 'mail' +is_object_valid 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# diff --git a/bin/v_list_mail_domains b/bin/v_list_mail_domains index 5d948daa3..2a3fd903e 100755 --- a/bin/v_list_mail_domains +++ b/bin/v_list_mail_domains @@ -13,7 +13,7 @@ user=$1 format=${2-shell} -# Importing variables +# Includes source $VESTA/func/shared.sh @@ -21,13 +21,8 @@ source $VESTA/func/shared.sh # Verifications # #----------------------------------------------------------# -# Checking args check_args '1' "$#" 'user [format]' - -# Checking argument format validate_format 'user' - -# Checking user is_object_valid 'user' 'USER' "$user" @@ -35,12 +30,10 @@ is_object_valid 'user' 'USER' "$user" # Action # #----------------------------------------------------------# -# Defining config -conf=$USER_DATA/mail.conf - # Defining fileds to select +conf=$USER_DATA/mail.conf fields="\$DOMAIN \$ANTIVIRUS \$ANTISPAM \$DKIM \$ACCOUNTS \$U_DISK \$CATCHALL" -fields="$fields \$SUSPENDED \$DATE" +fields="$fields \$SUSPENDED \$TIME \$DATE" # Listing domains case $format in diff --git a/bin/v_rebuild_mail_domains b/bin/v_rebuild_mail_domains index 226c1d048..e3fa9292e 100755 --- a/bin/v_rebuild_mail_domains +++ b/bin/v_rebuild_mail_domains @@ -12,7 +12,7 @@ # Argument defenition user=$1 -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -22,19 +22,10 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '1' "$#" 'user' - -# Checking argument format validate_format 'user' - -# Checking mail system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" @@ -54,14 +45,8 @@ if [ ! -d "$USER_DATA/mail" ]; then mkdir $USER_DATA/mail fi -# Defining config -conf="$USER_DATA/mail.conf" -search_string="DOMAIN" -field='$DOMAIN' -domains=$(dom_clear_search) - # Starting loop -for domain in $domains; do +for domain in $(search_objects 'dns' 'SUSPENDED' "*" 'DOMAIN'); do # Defining variables get_domain_values 'mail' @@ -108,7 +93,7 @@ for domain in $domains; do done # Adding dkim dns records - check_dns_domain=$(is_domain_valid 'dns') + check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain") if [ "$?" -eq 0 ]; then p=$(cat $pub|grep -v ' KEY---'|tr -d '\n') record='_domainkey' @@ -153,9 +138,6 @@ update_user_value "$user" '$U_MAIL_ACCOUNTS' "$U_MAIL_ACCOUNTS" update_user_value "$user" '$SUSPENDED_MAIL' "$SUSPENDED_MAIL" update_user_value "$user" '$U_DISK_MAIL' "$U_DISK_MAIL" -# Adding task to the vesta pipe -$BIN/v_restart_mail - # Logging log_event "$OK" "$EVENT" diff --git a/bin/v_suspend_mail_domain b/bin/v_suspend_mail_domain index 1fbd2af29..0ab1224e6 100755 --- a/bin/v_suspend_mail_domain +++ b/bin/v_suspend_mail_domain @@ -15,7 +15,7 @@ domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -25,26 +25,13 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" - -# Checking user is active is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_suspended 'mail' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_unsuspended 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# @@ -60,7 +47,7 @@ rm -f /etc/exim/domains/$domain #----------------------------------------------------------# # Updating config -update_domain_value 'mail' '$SUSPENDED' 'yes' +update_object_value 'mail' 'DOMAIN' "$domain" '$SUSPENDED' 'yes' # Logging log_event "$OK" "$EVENT" diff --git a/bin/v_suspend_mail_domains b/bin/v_suspend_mail_domains index 2594d53a0..fa01838bc 100755 --- a/bin/v_suspend_mail_domains +++ b/bin/v_suspend_mail_domains @@ -12,7 +12,7 @@ # Argument defenition user=$1 -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -22,16 +22,9 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '1' "$#" 'user' - -# Checking argument format validate_format 'user' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" @@ -39,16 +32,8 @@ is_object_valid 'user' 'USER' "$user" # Action # #----------------------------------------------------------# -# Defining config -conf="$USER_DATA/mail.conf" - -# Defining fileds to select -field='$DOMAIN' -search_string="SUSPENDED='no'" -domains=$(dom_clear_search) - # Starting suspend loop -for domain in $domains; do +for domain in $(search_objects 'mail' 'SUSPENDED' "no" 'DOMAIN'); do $BIN/v_suspend_mail_domain "$user" "$domain" done diff --git a/bin/v_unsuspend_mail_domain b/bin/v_unsuspend_mail_domain index 3e99cbaf5..4d0f7a1c2 100755 --- a/bin/v_unsuspend_mail_domain +++ b/bin/v_unsuspend_mail_domain @@ -15,7 +15,7 @@ domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") -# Importing variables +# Includes source $VESTA/conf/vesta.conf source $VESTA/func/shared.sh source $VESTA/func/domain.sh @@ -25,26 +25,12 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '2' "$#" 'user domain' - -# Checking argument format validate_format 'user' 'domain' - -# Checking dns system is enabled is_system_enabled 'MAIL_SYSTEM' - -# Checking user is_object_valid 'user' 'USER' "$user" - -# Checking user is active -is_object_unsuspended 'user' 'USER' "$user" - -# Checking domain -is_domain_valid 'mail' - -# Checking domain is not suspened -is_domain_value_exist 'mail' '$SUSPENDED' +is_object_valid 'mail' 'DOMAIN' "$domain" +is_object_suspended 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# @@ -60,7 +46,7 @@ ln -s $HOMEDIR/$user/conf/mail/$domain /etc/exim/domains/ #----------------------------------------------------------# # Updating config -update_domain_value 'mail' '$SUSPENDED' 'no' +update_object_value 'mail' 'DOMAIN' "$domain" '$SUSPENDED' 'no' # Logging log_event "$OK" "$EVENT" diff --git a/bin/v_unsuspend_mail_domains b/bin/v_unsuspend_mail_domains index 1e6362d2c..9ec1267e0 100755 --- a/bin/v_unsuspend_mail_domains +++ b/bin/v_unsuspend_mail_domains @@ -22,16 +22,9 @@ source $VESTA/func/domain.sh # Verifications # #----------------------------------------------------------# -# Checking arg number check_args '1' "$#" 'user' - -# Checking argument format validate_format 'user' - -# Checking dns system is enabled -is_system_enabled 'MAIL_SYSTEM' - -# Checking user +is_system_enabled "$MAIL_SYSTEM" is_object_valid 'user' 'USER' "$user" @@ -39,23 +32,10 @@ is_object_valid 'user' 'USER' "$user" # Action # #----------------------------------------------------------# -# Defining config -conf="$USER_DATA/mail.conf" - -# Defining fileds to select -field='$DOMAIN' - -# Defining search string -search_string="SUSPENDED='yes'" - -# Parsing suspeneded domains -#domains=$(dom_clear_search) - - # Starting unsuspend loop -#for domain in $domains; do -# $BIN/v_unsuspend_mail_domain "$user" "$domain" -#done +for domain in $(search_objects 'mail' 'SUSPENDED' "yes" 'DOMAIN'); do + $BIN/v_unsuspend_mail_domain "$user" "$domain" +done #----------------------------------------------------------# diff --git a/func/db.sh b/func/db.sh index b579ad342..0560308c1 100644 --- a/func/db.sh +++ b/func/db.sh @@ -111,6 +111,10 @@ add_mysql_database() { query="GRANT ALL ON $database.* TO '$dbuser'@'localhost' IDENTIFIED BY '$dbpass'" mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null + + query="SHOW GRANTS FOR '$dbuser'" + md5=$(mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query") + md5=$(echo "$md5" |grep 'PASSWORD' |tr ' ' '\n' |tail -n1 |cut -f 2 -d \') } # Create PostgreSQL database @@ -143,11 +147,14 @@ add_pgsql_database() { fi psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null - query="GRANT ALL PRIVILEGES ON DATABASE $database TO $db_user" + query="GRANT ALL PRIVILEGES ON DATABASE $database TO $dbuser" psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null - query="GRANT CONNECT ON DATABASE template1 to $db_user" + query="GRANT CONNECT ON DATABASE template1 to $dbuser" psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null + + query="SELECT rolpassword FROM pg_authid WHERE rolname='$dbuser';" + md5=$(psql -h $HOST -U $USER -p $PORT -c "$query"|grep md5|cut -f 2 -d \ ) } # Check if database host do not exist in config @@ -214,6 +221,10 @@ change_mysql_password() { query="GRANT ALL ON $database.* TO '$DBUSER'@'localhost' IDENTIFIED BY '$dbpass'" mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null + + query="SHOW GRANTS FOR '$DBUSER'" + md5=$(mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query") + md5=$(echo "$md5" |grep 'PASSWORD' |tr ' ' '\n' |tail -n1 |cut -f 2 -d \') } # Change PostgreSQL database password @@ -237,6 +248,9 @@ change_pgsql_password() { query="ALTER ROLE $DBUSER WITH LOGIN PASSWORD '$dbpass'" psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null + + query="SELECT rolpassword FROM pg_authid WHERE rolname='$DBUSER';" + md5=$(psql -h $HOST -U $USER -p $PORT -c "$query"|grep md5|cut -f 2 -d \ ) } # Delete MySQL database diff --git a/func/domain.sh b/func/domain.sh index 6ad15448c..08b1f4670 100644 --- a/func/domain.sh +++ b/func/domain.sh @@ -56,6 +56,30 @@ is_domain_new() { fi } +# Checking mail account existance +is_mail_new() { + check_acc=$(grep "ACCOUNT='$1'" $USER_DATA/mail/$domain.conf) + if [ ! -z "$check_acc" ]; then + echo "Error: mail account $1 exist" + log_event "$E_EXISTS" "$EVENT" + exit + fi + check_als=$(awk -F "ALIAS='" '{print $2}' $USER_DATA/mail/$domain.conf ) + check_als=$(echo "$check_als" | cut -f 1 -d "'" | grep -w $1) + if [ ! -z "$check_als" ]; then + echo "Error: mail alias $1 exist" + log_event "$E_EXISTS" "$EVENT" + exit + fi + check_fwd=$(awk -F "FWD='" '{print $2}' $USER_DATA/mail/$domain.conf ) + check_fwd=$(echo "$check_fwd" | cut -f 1 -d "'" | grep -w $1) + if [ ! -z "$check_fwd" ]; then + echo "Error: mail forward $1 exist" + log_event "$E_EXISTS" "$EVENT" + exit + fi +} + # Update domain zone update_domain_zone() { conf="$HOMEDIR/$user/conf/dns/$domain.db"