Skip to content

Commit 07ad0e7

Browse files
committed
Mail Localpart / Account and Mail alias use new validator check
1 parent d660e8c commit 07ad0e7

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

func/main.sh

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -704,7 +704,30 @@ sync_cron_jobs() {
704704
chmod 600 $crontab
705705
}
706706

707-
# User format validator
707+
# Validates Local part email and mail alias
708+
is_localpart_format_valid() {
709+
if [ ${#1} -eq 1 ]; then
710+
if ! [[ "$1" =~ ^^[[:alnum:]]$ ]]; then
711+
check_result "$E_INVALID" "invalid $2 format :: $1"
712+
fi
713+
else
714+
if [ -n "$3" ]; then
715+
maxlenght=$(($3 - 2))
716+
if ! [[ "$1" =~ ^[[:alnum:]][-|\.|_[:alnum:]]{0,$maxlenght}[[:alnum:]]$ ]]; then
717+
check_result "$E_INVALID" "invalid $2 format :: $1"
718+
fi
719+
else
720+
if ! [[ "$1" =~ ^[[:alnum:]][-|\.|_[:alnum:]]{0,28}[[:alnum:]]$ ]]; then
721+
check_result "$E_INVALID" "invalid $2 format :: $1"
722+
fi
723+
fi
724+
fi
725+
if [ "$1" != "${1//[^[:ascii:]]/}" ]; then
726+
check_result "$E_INVALID" "invalid $2 format :: $1"
727+
fi
728+
}
729+
730+
# Username / ftp username format validator
708731
is_user_format_valid() {
709732
if [ ${#1} -eq 1 ]; then
710733
if ! [[ "$1" =~ ^^[[:alnum:]]$ ]]; then
@@ -1188,7 +1211,7 @@ is_format_valid() {
11881211
if [ -n "$arg" ]; then
11891212
case $arg_name in
11901213
access_key_id) is_access_key_id_format_valid "$arg" "$arg_name" ;;
1191-
account) is_user_format_valid "$arg" "$arg_name" '64' ;;
1214+
account) is_localpart_format_valid "$arg" "$arg_name" '64' ;;
11921215
action) is_fw_action_format_valid "$arg" ;;
11931216
active) is_boolean_format_valid "$arg" 'active' ;;
11941217
aliases) is_alias_format_valid "$arg" ;;
@@ -1229,7 +1252,7 @@ is_format_valid() {
12291252
ip_status) is_ip_status_format_valid "$arg" ;;
12301253
job) is_int_format_valid "$arg" 'job' ;;
12311254
key) is_common_format_valid "$arg" "$arg_name" ;;
1232-
malias) is_user_format_valid "$arg" "$arg_name" '64' ;;
1255+
malias) is_localpart_format_valid "$arg" "$arg_name" '64' ;;
12331256
max_db) is_int_format_valid "$arg" 'max db' ;;
12341257
min) is_cron_format_valid "$arg" $arg_name ;;
12351258
month) is_cron_format_valid "$arg" $arg_name ;;

0 commit comments

Comments
 (0)