Skip to content

Commit 58dd206

Browse files
committed
Fix issue with validation
1 parent 789a2b0 commit 58dd206

File tree

3 files changed

+18
-27
lines changed

3 files changed

+18
-27
lines changed

bin/v-change-database-owner

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ if [ -z "$db_data" ]; then
5252
exit $E_NOTEXIST
5353
fi
5454

55+
parse_object_kv_list "$db_data"
5556
#Fix issue #1084 with "Upper case not allowed with PGSQL"
5657
if [ "$TYPE" == "pgsql" ]; then
5758
usersmall=$(echo "$user" | tr '[:upper:]' '[:lower:]');
@@ -83,7 +84,6 @@ tmpdir=$(mktemp -p $BACKUP -d "tmp.$database.XXXXXXXXXX" > /dev/null 2>&1)
8384
$BIN/v-suspend-database $owner $database > /dev/null 2>&1
8485

8586
# Dump database
86-
parse_object_kv_list "$db_data"
8787
dump="$tmpdir/$database.$TYPE.sql"
8888
grants="$tmpdir/$database.$TYPE.$DBUSER"
8989
case $TYPE in

bin/v-change-database-user

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ database=$2
1515
dbuser="$user"_"$3"
1616
password=$4; HIDE=4
1717

18-
if [ "$type" = "pgsql" ]; then
19-
dbuser=$(echo "$user"_"$3" | tr '[:upper:]' '[:lower:]');
20-
fi
21-
2218
# Includes
2319
source $HESTIA/func/main.sh
2420
source $HESTIA/func/db.sh
@@ -60,7 +56,12 @@ update_object_value 'db' 'DB' "$database" '$DBUSER' "$dbuser"
6056
# Get database values
6157
get_database_values
6258

63-
# Rebuild datbase
59+
#Fix issue #1084 with "Upper case not allowed with PGSQL"
60+
if [ "$TYPE" = "pgsql" ]; then
61+
dbuser=$(echo $dbuser | tr '[:upper:]' '[:lower:]');
62+
fi
63+
64+
# Rebuild database
6465
case $TYPE in
6566
mysql) rebuild_mysql_database ;;
6667
pgsql) rebuild_pgsql_database ;;

func/main.sh

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -724,14 +724,9 @@ is_common_format_valid() {
724724

725725
# Database format validator
726726
is_database_format_valid() {
727-
if [ "$3" == "pgsql" ]; then
728-
if ! [[ "$1" =~ ^[0-9a-z_]{1,63}$ ]]; then
729-
check_result $E_INVALID "invalid $2 format :: $1"
730-
fi
731-
else
732-
if ! [[ "$1" =~ ^[0-9a-zA-Z_]{1,64}$ ]]; then
733-
check_result $E_INVALID "invalid $2 format :: $1"
734-
fi
727+
exclude="[!|@|#|$|^|&|*|(|)|+|=|{|}|:|,|<|>|?|/|\|\"|'|;|%|\`| ]"
728+
if [[ "$1" =~ $exclude ]] || [ 64 -le ${#1} ]; then
729+
check_result $E_INVALID "invalid $2 format :: $1"
735730
fi
736731
}
737732

@@ -744,17 +739,12 @@ is_date_format_valid() {
744739

745740
# Database user validator
746741
is_dbuser_format_valid() {
747-
if [ "$3" == "pgsql" ]; then
748-
if ! [[ "$1" =~ ^[0-9a-z_]{1,63}$ ]]; then
749-
check_result $E_INVALID "invalid $2 format :: $1"
750-
fi
751-
else
752-
if [ 33 -le ${#1} ]; then
753-
check_result $E_INVALID "mysql username can be up to 32 characters long"
754-
fi
755-
if ! [[ "$1" =~ ^[0-9a-zA-Z_]{1,64}$ ]]; then
756-
check_result $E_INVALID "invalid $2 format :: $1"
757-
fi
742+
exclude="[!|@|#|$|^|&|*|(|)|+|=|{|}|:|,|<|>|?|/|\|\"|'|;|%|\`| ]"
743+
if [ 33 -le ${#1} ]; then
744+
check_result $E_INVALID "mysql username can be up to 32 characters long"
745+
fi
746+
if [[ "$1" =~ $exclude ]]; then
747+
check_result $E_INVALID "invalid $2 format :: $1"
758748
fi
759749
}
760750

@@ -948,10 +938,10 @@ is_format_valid() {
948938
charset) is_object_format_valid "$arg" "$arg_name" ;;
949939
charsets) is_common_format_valid "$arg" 'charsets' ;;
950940
comment) is_object_format_valid "$arg" 'comment' ;;
951-
database) is_database_format_valid "$arg" 'database' $type;;
941+
database) is_database_format_valid "$arg" 'database';;
952942
day) is_cron_format_valid "$arg" $arg_name ;;
953943
dbpass) is_password_format_valid "$arg" ;;
954-
dbuser) is_dbuser_format_valid "$arg" 'dbuser' $type;;
944+
dbuser) is_dbuser_format_valid "$arg" 'dbuser';;
955945
dkim) is_boolean_format_valid "$arg" 'dkim' ;;
956946
dkim_size) is_int_format_valid "$arg" ;;
957947
domain) is_domain_format_valid "$arg" ;;

0 commit comments

Comments
 (0)