Просмотр исходного кода

3213 [Bug] Hestia allows umlauts for user names, which produces some issues. (#3220)

* Fix #3213 prevent use of special chars

Add few extra tests

* Use :ascii: instead

* Update tests
Jaap Marcus 3 лет назад
Родитель
Сommit
a2971dfc4e
2 измененных файлов с 20 добавлено и 0 удалено
  1. 3 0
      func/main.sh
  2. 17 0
      test/test.bats

+ 3 - 0
func/main.sh

@@ -695,6 +695,9 @@ is_user_format_valid() {
 			fi
 			fi
 		fi
 		fi
 	fi
 	fi
+	if [ "$1" != "${1//[^[:ascii:]]/}" ]; then
+		check_result "$E_INVALID" "invalid $2 format :: $1"
+	fi
 }
 }
 
 
 # Domain format validator
 # Domain format validator

+ 17 - 0
test/test.bats

@@ -320,6 +320,23 @@ function check_ip_not_banned(){
     refute_output
     refute_output
 }
 }
 
 
+@test "User: Add new user Failed 1" {
+	run v-add-user 'jäap' $user $user@hestiacp2.com default "Super Test"
+	assert_failure $E_INVALID
+	assert_output --partial 'Error: invalid user format'
+}
+@test "User: Add new user Failed 2" {
+	run v-add-user 'ëaap' $user $user@hestiacp2.com default "Super Test"
+	assert_failure $E_INVALID
+	assert_output --partial 'Error: invalid user format'
+}
+
+@test "User: Add new user Failed 3" {
+	run v-add-user 'jaaẞ'  $user $user@hestiacp2.com default "Super Test"
+	assert_failure $E_INVALID
+	assert_output --partial 'Error: invalid user format'
+}
+
 @test "User: Change user password" {
 @test "User: Change user password" {
     run v-change-user-password "$user" "$userpass2"
     run v-change-user-password "$user" "$userpass2"
     assert_success
     assert_success