|
@@ -686,13 +686,13 @@ is_user_format_valid() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Domain format validator
|
|
# Domain format validator
|
|
|
-# removed "" around \.\. and $(printf '\t'): SC2076: Don't quote right-hand side of =~, it'll match literally rather than as a regex. And we need regex match!
|
|
|
|
|
is_domain_format_valid() {
|
|
is_domain_format_valid() {
|
|
|
object_name=${2-domain}
|
|
object_name=${2-domain}
|
|
|
exclude="[!|@|#|$|^|&|*|(|)|+|=|{|}|:|,|<|>|?|_|/|\|\"|'|;|%|\`| ]"
|
|
exclude="[!|@|#|$|^|&|*|(|)|+|=|{|}|:|,|<|>|?|_|/|\|\"|'|;|%|\`| ]"
|
|
|
if [[ $1 =~ $exclude ]] || [[ $1 =~ ^[0-9]+$ ]] || [[ $1 =~ \.\. ]] || [[ $1 =~ $(printf '\t') ]] || [[ "$1" = "www" ]]; then
|
|
if [[ $1 =~ $exclude ]] || [[ $1 =~ ^[0-9]+$ ]] || [[ $1 =~ \.\. ]] || [[ $1 =~ $(printf '\t') ]] || [[ "$1" = "www" ]]; then
|
|
|
check_result "$E_INVALID" "invalid $object_name format :: $1"
|
|
check_result "$E_INVALID" "invalid $object_name format :: $1"
|
|
|
fi
|
|
fi
|
|
|
|
|
+ is_no_new_line_format "$1";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Alias forman validator
|
|
# Alias forman validator
|
|
@@ -829,6 +829,7 @@ is_extention_format_valid() {
|
|
|
if [[ "$1" =~ $exclude ]]; then
|
|
if [[ "$1" =~ $exclude ]]; then
|
|
|
check_result "$E_INVALID" "invalid proxy extention format :: $1"
|
|
check_result "$E_INVALID" "invalid proxy extention format :: $1"
|
|
|
fi
|
|
fi
|
|
|
|
|
+ is_no_new_line_format "$1";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Number format validator
|
|
# Number format validator
|
|
@@ -885,6 +886,14 @@ is_common_format_valid() {
|
|
|
if [[ $(echo -n "$1" | grep -c '\_\_') -gt 0 ]]; then
|
|
if [[ $(echo -n "$1" | grep -c '\_\_') -gt 0 ]]; then
|
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
|
fi
|
|
fi
|
|
|
|
|
+ is_no_new_line_format "$1";
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+is_no_new_line_format() {
|
|
|
|
|
+ test=$(echo $1 | sed -e 's/\.*$//g' -e 's/^\.*//g');
|
|
|
|
|
+ if [[ "$test" != "$1" ]]; then
|
|
|
|
|
+ check_result "$E_INVALID" "invalid value :: $1"
|
|
|
|
|
+ fi
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
is_string_format_valid() {
|
|
is_string_format_valid() {
|
|
@@ -892,6 +901,7 @@ is_string_format_valid() {
|
|
|
if [[ "$1" =~ $exclude ]]; then
|
|
if [[ "$1" =~ $exclude ]]; then
|
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
|
fi
|
|
fi
|
|
|
|
|
+ is_no_new_line_format "$1";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Database format validator
|
|
# Database format validator
|
|
@@ -900,6 +910,7 @@ is_database_format_valid() {
|
|
|
if [[ "$1" =~ $exclude ]] || [ 64 -le ${#1} ]; then
|
|
if [[ "$1" =~ $exclude ]] || [ 64 -le ${#1} ]; then
|
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
|
fi
|
|
fi
|
|
|
|
|
+ is_no_new_line_format "$1";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Date format validator
|
|
# Date format validator
|
|
@@ -918,6 +929,7 @@ is_dbuser_format_valid() {
|
|
|
if [[ "$1" =~ $exclude ]]; then
|
|
if [[ "$1" =~ $exclude ]]; then
|
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
|
fi
|
|
fi
|
|
|
|
|
+ is_no_new_line_format "$1"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# DNS record type validator
|
|
# DNS record type validator
|
|
@@ -940,7 +952,7 @@ is_dns_record_format_valid() {
|
|
|
is_domain_format_valid "${1::-1}" 'mx_record'
|
|
is_domain_format_valid "${1::-1}" 'mx_record'
|
|
|
is_int_format_valid "$priority" 'priority_record'
|
|
is_int_format_valid "$priority" 'priority_record'
|
|
|
fi
|
|
fi
|
|
|
-
|
|
|
|
|
|
|
+ is_no_new_line_format "$1";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# Email format validator
|
|
# Email format validator
|
|
@@ -1066,7 +1078,7 @@ is_object_format_valid() {
|
|
|
|
|
|
|
|
# Role validator
|
|
# Role validator
|
|
|
is_role_valid (){
|
|
is_role_valid (){
|
|
|
- if ! [[ "$1" =~ ^admin|user$ ]]; then
|
|
|
|
|
|
|
+ if ! [[ "$1" =~ ^admin$|^user$ ]]; then
|
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
check_result "$E_INVALID" "invalid $2 format :: $1"
|
|
|
fi
|
|
fi
|
|
|
}
|
|
}
|
|
@@ -1112,12 +1124,14 @@ is_format_valid() {
|
|
|
action) is_fw_action_format_valid "$arg";;
|
|
action) is_fw_action_format_valid "$arg";;
|
|
|
active) is_boolean_format_valid "$arg" 'active' ;;
|
|
active) is_boolean_format_valid "$arg" 'active' ;;
|
|
|
aliases) is_alias_format_valid "$arg" ;;
|
|
aliases) is_alias_format_valid "$arg" ;;
|
|
|
|
|
+ alias) is_alias_format_valid "$arg" ;;
|
|
|
antispam) is_boolean_format_valid "$arg" 'antispam' ;;
|
|
antispam) is_boolean_format_valid "$arg" 'antispam' ;;
|
|
|
antivirus) is_boolean_format_valid "$arg" 'antivirus' ;;
|
|
antivirus) is_boolean_format_valid "$arg" 'antivirus' ;;
|
|
|
autoreply) is_autoreply_format_valid "$arg" ;;
|
|
autoreply) is_autoreply_format_valid "$arg" ;;
|
|
|
backup) is_object_format_valid "$arg" 'backup' ;;
|
|
backup) is_object_format_valid "$arg" 'backup' ;;
|
|
|
charset) is_object_format_valid "$arg" "$arg_name" ;;
|
|
charset) is_object_format_valid "$arg" "$arg_name" ;;
|
|
|
charsets) is_common_format_valid "$arg" 'charsets' ;;
|
|
charsets) is_common_format_valid "$arg" 'charsets' ;;
|
|
|
|
|
+ chain) is_object_format_valid "$arg" 'chain' ;;
|
|
|
comment) is_object_format_valid "$arg" 'comment' ;;
|
|
comment) is_object_format_valid "$arg" 'comment' ;;
|
|
|
database) is_database_format_valid "$arg" 'database';;
|
|
database) is_database_format_valid "$arg" 'database';;
|
|
|
day) is_cron_format_valid "$arg" $arg_name ;;
|
|
day) is_cron_format_valid "$arg" $arg_name ;;
|
|
@@ -1126,11 +1140,13 @@ is_format_valid() {
|
|
|
dkim) is_boolean_format_valid "$arg" 'dkim' ;;
|
|
dkim) is_boolean_format_valid "$arg" 'dkim' ;;
|
|
|
dkim_size) is_int_format_valid "$arg" ;;
|
|
dkim_size) is_int_format_valid "$arg" ;;
|
|
|
domain) is_domain_format_valid "$arg" ;;
|
|
domain) is_domain_format_valid "$arg" ;;
|
|
|
|
|
+ dom_alias) is_alias_format_valid "$arg" ;;
|
|
|
dvalue) is_dns_record_format_valid "$arg";;
|
|
dvalue) is_dns_record_format_valid "$arg";;
|
|
|
email) is_email_format_valid "$arg" ;;
|
|
email) is_email_format_valid "$arg" ;;
|
|
|
email_forward) is_email_format_valid "$arg" ;;
|
|
email_forward) is_email_format_valid "$arg" ;;
|
|
|
exp) is_date_format_valid "$arg" ;;
|
|
exp) is_date_format_valid "$arg" ;;
|
|
|
extentions) is_common_format_valid "$arg" 'extentions' ;;
|
|
extentions) is_common_format_valid "$arg" 'extentions' ;;
|
|
|
|
|
+ format) is_type_valid 'plain json shell csv' "$arg" ;;
|
|
|
ftp_password) is_password_format_valid "$arg" ;;
|
|
ftp_password) is_password_format_valid "$arg" ;;
|
|
|
ftp_user) is_user_format_valid "$arg" "$arg_name" ;;
|
|
ftp_user) is_user_format_valid "$arg" "$arg_name" ;;
|
|
|
hash) is_hash_format_valid "$arg" "$arg_name" ;;
|
|
hash) is_hash_format_valid "$arg" "$arg_name" ;;
|
|
@@ -1181,9 +1197,11 @@ is_format_valid() {
|
|
|
soa) is_domain_format_valid "$arg" 'SOA' ;;
|
|
soa) is_domain_format_valid "$arg" 'SOA' ;;
|
|
|
#missing command: is_format_valid_shell
|
|
#missing command: is_format_valid_shell
|
|
|
shell) is_format_valid_shell "$arg" ;;
|
|
shell) is_format_valid_shell "$arg" ;;
|
|
|
|
|
+ ssl_dir) is_folder_exists "$arg" "$arg_name" ;;
|
|
|
stats_pass) is_password_format_valid "$arg" ;;
|
|
stats_pass) is_password_format_valid "$arg" ;;
|
|
|
stats_user) is_user_format_valid "$arg" "$arg_name" ;;
|
|
stats_user) is_user_format_valid "$arg" "$arg_name" ;;
|
|
|
template) is_object_format_valid "$arg" "$arg_name" ;;
|
|
template) is_object_format_valid "$arg" "$arg_name" ;;
|
|
|
|
|
+ theme) is_common_format_valid "$arg" "$arg_name" ;;
|
|
|
ttl) is_int_format_valid "$arg" 'ttl';;
|
|
ttl) is_int_format_valid "$arg" 'ttl';;
|
|
|
user) is_user_format_valid "$arg" $arg_name;;
|
|
user) is_user_format_valid "$arg" $arg_name;;
|
|
|
wday) is_cron_format_valid "$arg" $arg_name ;;
|
|
wday) is_cron_format_valid "$arg" $arg_name ;;
|
|
@@ -1193,6 +1211,20 @@ is_format_valid() {
|
|
|
done
|
|
done
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+is_folder_exists () {
|
|
|
|
|
+ if [ ! -d "$1" ]; then
|
|
|
|
|
+ check_result "$E_NOTEXIST" "folder $1 does not exist"
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+is_command_valid_format () {
|
|
|
|
|
+ if [[ ! "$1" =~ ^v-[[:alnum:]][-|\.|_[:alnum:]]{0,64}[[:alnum:]]$ ]]; then
|
|
|
|
|
+ check_result "$E_INVALID" "Invalid command format"
|
|
|
|
|
+ fi
|
|
|
|
|
+ if [[ -n $( echo "$1" | grep -e '\-\-' ) ]]; then
|
|
|
|
|
+ check_result "$E_INVALID" "Invalid command format"
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
# Check access_key_id name
|
|
# Check access_key_id name
|
|
|
# Don't work with legacy key format
|
|
# Don't work with legacy key format
|
|
|
is_access_key_id_format_valid() {
|
|
is_access_key_id_format_valid() {
|
|
@@ -1495,6 +1527,7 @@ format_no_quotes() {
|
|
|
if [[ "$1" =~ $exclude ]]; then
|
|
if [[ "$1" =~ $exclude ]]; then
|
|
|
check_result "$E_INVALID" "Invalid $2 contains qoutes (\" or ') :: $1"
|
|
check_result "$E_INVALID" "Invalid $2 contains qoutes (\" or ') :: $1"
|
|
|
fi
|
|
fi
|
|
|
|
|
+ is_no_new_line_format "$1"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
is_username_format_valid(){
|
|
is_username_format_valid(){
|