Bläddra i källkod

Use for loop

- Fix bug with part of banned username being rejected for example: buffer was also banned

- Add extra tests for
id_buffer "Blacklisted" username
buffer "Valid username" but containing string within "banned username"
Jaap Marcus 2 år sedan
förälder
incheckning
40b1942963
2 ändrade filer med 23 tillägg och 1 borttagningar
  1. 5 1
      bin/v-add-user
  2. 18 0
      test/test.bats

+ 5 - 1
bin/v-add-user

@@ -36,10 +36,14 @@ is_user_free() {
 	# these names may cause issues with MariaDB/MySQL database names and should be reserved:
 	# sudo has been added due to Privilege escalation as sudo group has always sudo permission
 	reserved_names=("aria" "aria_log" "mysql" "mysql_upgrade" "ib" "ib_buffer" "ddl" "ddl_recovery" "performance" "sudo")
-	if [[ "${reserved_names[@],,}" =~ "${user,,}" ]]; then
+	for value in "${reserved_names[@]}"
+	do
+	if [ "${user,,}" = "$value" ]; then
         	check_result "$E_INVALID" "The user name '$user' is reserved and cannot be used. List of reserved names: ${reserved_names[*]}"
         	return
 	fi
+	done
+
 	check_sysuser=$(cut -f 1 -d : /etc/passwd | grep "^$user$")
 	if [ -n "$check_sysuser" ] || [ -e "$USER_DATA" ]; then
 		check_result "$E_EXISTS" "user $user exists"

+ 18 - 0
test/test.bats

@@ -396,6 +396,12 @@ function check_ip_not_banned(){
 	assert_output --partial 'Error: invalid user format'
 }
 
+@test "User: Add new user Failed 6" {
+	run v-add-user 'ib_Buffer'  $user $user@hestiacp2.com default "Super Test"
+	assert_failure $E_INVALID
+	assert_output --partial 'Error: invalid user format'
+}
+
 @test "User: Add new user Success 1" {
 	run v-add-user 'jaap01'  $user $user@hestiacp2.com default "Super Test"
 	assert_success
@@ -408,6 +414,18 @@ function check_ip_not_banned(){
 	refute_output
 }
 
+@test "User: Add new user Success 2" {
+	run v-add-user 'buffer'  $user $user@hestiacp2.com default "Super Test"
+	assert_success
+	refute_output
+}
+
+@test "User: Add new user Success 2 Delete" {
+	run v-delete-user buffer
+	assert_success
+	refute_output
+}
+
 @test "User: Change user password" {
     run v-change-user-password "$user" "$userpass2"
     assert_success