@@ -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
708731is_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