Skip to content

Commit 5192355

Browse files
committed
Code optimalisation
Added strtolower for v-add-database, v-change-database-* functions Removed duplicated code Fixed issue with v-list-database
1 parent f972223 commit 5192355

File tree

7 files changed

+37
-65
lines changed

7 files changed

+37
-65
lines changed

bin/v-add-database

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ source $HESTIA/func/main.sh
3030
source $HESTIA/func/db.sh
3131
source $HESTIA/conf/hestia.conf
3232

33+
if [ "$type" = "pgsql" ]; then
34+
database=$(echo "$user"_"$2" | tr '[:upper:]' '[:lower:]');
35+
dbuser=$(echo "$user"_"$3" | tr '[:upper:]' '[:lower:]');
36+
fi
37+
3338
#----------------------------------------------------------#
3439
# Verifications #
3540
#----------------------------------------------------------#

bin/v-change-database-owner

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
database=$1
1414
user=$2
1515

16+
1617
# Includes
1718
source $HESTIA/func/main.sh
1819
source $HESTIA/func/db.sh
@@ -51,8 +52,15 @@ if [ -z "$db_data" ]; then
5152
exit $E_NOTEXIST
5253
fi
5354

54-
# Check if datbase name is uniq
55-
new_db=$(echo $database | sed "s/^${owner}_/${user}_/")
55+
#Fix issue #1084 with "Upper case not allowed with PGSQL"
56+
if [ "$TYPE" == "pgsql" ]; then
57+
usersmall=$(echo "$user" | tr '[:upper:]' '[:lower:]');
58+
else
59+
usersmall=$user
60+
fi
61+
62+
# Check if database name is uniqe
63+
new_db=$(echo $database | sed "s/^${owner}_/${usersmall}_/")
5664
check_db=$(grep "DB='$new_db'" $HESTIA/data/users/$user/db.conf)
5765
if [ ! -z "$check_db" ]; then
5866
echo "Error: $new_db database exists"
@@ -84,7 +92,7 @@ case $TYPE in
8492
esac
8593

8694
# Import configuration
87-
db_data=$(echo "$db_data" | sed "s/'${owner}_/'${user}_/g")
95+
db_data=$(echo "$db_data" | sed "s/'${owner}_/'${usersmall}_/g")
8896
echo "$db_data" >> $HESTIA/data/users/$user/db.conf
8997
parse_object_kv_list "$db_data"
9098

bin/v-change-database-user

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ 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+
1822
# Includes
1923
source $HESTIA/func/main.sh
2024
source $HESTIA/func/db.sh

func/main.sh

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

725725
# Database format validator
726726
is_database_format_valid() {
727-
if [ "$3" == "mysql" ]; then
728-
if ! [[ "$1" =~ ^[0-9a-zA-Z_]{1,64}$ ]]; then
727+
if [ "$3" == "pgsql" ]; then
728+
if ! [[ "$1" =~ ^[0-9a-z_]{1,63}$ ]]; then
729729
check_result $E_INVALID "invalid $2 format :: $1"
730-
fi
730+
fi
731731
else
732-
if ! [[ "$1" =~ ^[0-9a-z_]{1,63}$ ]]; then
732+
if ! [[ "$1" =~ ^[0-9a-zA-Z_]{1,64}$ ]]; then
733733
check_result $E_INVALID "invalid $2 format :: $1"
734-
fi
734+
fi
735735
fi
736736
}
737737

@@ -744,17 +744,17 @@ is_date_format_valid() {
744744

745745
# Database user validator
746746
is_dbuser_format_valid() {
747-
if [ "$3" == "mysql" ]; then
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
748752
if [ 33 -le ${#1} ]; then
749753
check_result $E_INVALID "mysql username can be up to 32 characters long"
750754
fi
751755
if ! [[ "$1" =~ ^[0-9a-zA-Z_]{1,64}$ ]]; then
752756
check_result $E_INVALID "invalid $2 format :: $1"
753-
fi
754-
else
755-
if ! [[ "$1" =~ ^[0-9a-z_]{1,63}$ ]]; then
756-
check_result $E_INVALID "invalid $2 format :: $1"
757-
fi
757+
fi
758758
fi
759759
}
760760

web/add/db/index.php

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -38,39 +38,6 @@
3838
if (!filter_var($_POST['v_db_email'], FILTER_VALIDATE_EMAIL)) {
3939
$_SESSION['error_msg'] = __('Please enter valid email address.');
4040
}
41-
}
42-
43-
if (empty($_SESSION['error_msg'])) {
44-
if($_POST['v_type'] == 'mysql'){
45-
if (strlen($user.'_'.$_POST['v_database']) > 64){
46-
$_SESSION['error_msg'] = __('Maximum length of database is %s characters', 64);
47-
}else if (!preg_match('/^[0-9a-zA-Z_]{1,64}$/',$user.'_'.$_POST['v_database'])){
48-
$_SESSION['error_msg'] = __('Database name may only contain lowercase/uppercase letters, numbers or a _');
49-
}
50-
}else{
51-
if (strlen($user.'_'.$_POST['v_database']) > 63){
52-
$_SESSION['error_msg'] = __('Maximum length of database is %s characters', 63);
53-
}else if (!preg_match('/^[0-9a-z_]{1,63}$/',$user.'_'.$_POST['v_database'])){
54-
var_dump(preg_match('/^[0-9a-z_]{1,63}$/',$user.'_'.$_POST['v_database']));
55-
$_SESSION['error_msg'] = __('Database name may only contain lowercase letters, numbers or a _');
56-
}
57-
}
58-
}
59-
60-
if (empty($_SESSION['error_msg'])) {
61-
if($_POST['v_type'] == 'mysql'){
62-
if (strlen($user.'_'.$_POST['v_dbuser']) > 32){
63-
$_SESSION['error_msg'] = __('Maximum length of database is %s characters', 32);
64-
}else if (!preg_match('/^[0-9a-zA-Z_]{1,32}$/',$user.'_'.$_POST['v_dbuser'])){
65-
$_SESSION['error_msg'] = __('Username may only contain lowercase/uppercase letters, numbers or a _');
66-
}
67-
}else{
68-
if (strlen($user.'_'.$_POST['v_dbuser']) > 63){
69-
$_SESSION['error_msg'] = __('Maximum length of database is %s characters', 63);
70-
}else if (!preg_match('/^[0-9a-z_]{1,63}$/',$user.'_'.$_POST['v_dbuser'])){
71-
$_SESSION['error_msg'] = __('Username may only contain lowercase letters, numbers or a _');
72-
}
73-
}
7441
}
7542

7643
// Check password length

web/edit/db/index.php

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,7 @@
4949
if ((!isset($_POST['token'])) || ($_SESSION['token'] != $_POST['token'])) {
5050
header('location: /login/');
5151
exit();
52-
}
53-
54-
if (empty($_SESSION['error_msg'])) {
55-
if($_POST['v_type'] == 'mysql'){
56-
if (strlen($user.'_'.$_POST['v_dbuser']) > 32){
57-
$_SESSION['error_msg'] = __('Maximum length of database is %s characters', 32);
58-
}else if (!preg_match('/^[0-9a-zA-Z_]{1,32}$/',$user.'_'.$_POST['v_dbuser'])){
59-
$_SESSION['error_msg'] = __('Username may only contain lowercase/uppercase letters, numbers or a _');
60-
}
61-
}else{
62-
if (strlen($user.'_'.$_POST['v_dbuser']) > 63){
63-
$_SESSION['error_msg'] = __('Maximum length of database is %s characters', 63);
64-
}else if (!preg_match('/^[0-9a-z_]{1,63}$/',$user.'_'.$_POST['v_dbuser'])){
65-
$_SESSION['error_msg'] = __('Username may only contain lowercase letters, numbers or a _');
66-
}
67-
}
68-
}
52+
}
6953

7054
// Change database user
7155
if (($v_dbuser != $_POST['v_dbuser']) && (empty($_SESSION['error_msg']))) {

web/templates/admin/edit_db.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,12 @@
135135
</table>
136136
</form>
137137
</div>
138-
138+
<?php if ($v_type == 'pgsql'){
139+
$user=strtolower($user);
140+
}
141+
?>
139142
<script>
140143
GLOBAL.DB_USER_PREFIX = <?=json_encode($user.'_')?>;
141144
GLOBAL.DB_DBNAME_PREFIX = <?=json_encode($user.'_')?>;
142145
</script>
146+

0 commit comments

Comments
 (0)