]> BookStack Code Mirror - bookstack/commitdiff
Users: Changed name validation to min:1 instead of 2
authorDan Brown <redacted>
Tue, 15 Oct 2024 10:07:41 +0000 (11:07 +0100)
committerDan Brown <redacted>
Tue, 15 Oct 2024 10:07:41 +0000 (11:07 +0100)
Would cause scenarios where users could be created with 1 char, but then
fail to update due to validation differences.
Added test to cover.
For #5263

app/Users/Controllers/UserApiController.php
app/Users/Controllers/UserController.php
tests/User/UserManagementTest.php

index 6ee8f16d15ed317de5dcdaa4748e07610b1da4b7..c84f1531d6a3853b417c455d0bd743564ea4c7e9 100644 (file)
@@ -37,7 +37,7 @@ class UserApiController extends ApiController
     {
         return [
             'create' => [
-                'name'  => ['required', 'string', 'min:2', 'max:100'],
+                'name'  => ['required', 'string', 'min:1', 'max:100'],
                 'email' => [
                     'required', 'string', 'email', 'min:2', new Unique('users', 'email'),
                 ],
@@ -49,7 +49,7 @@ class UserApiController extends ApiController
                 'send_invite'      => ['boolean'],
             ],
             'update' => [
-                'name'  => ['string', 'min:2', 'max:100'],
+                'name'  => ['string', 'min:1', 'max:100'],
                 'email' => [
                     'string',
                     'email',
index b5dbaa832862661d0b2e7395e2adb3a5939aba75..c6e4326e99a9593cef25bbe2c73b3dfd860eeb4a 100644 (file)
@@ -144,7 +144,7 @@ class UserController extends Controller
         $this->checkPermission('users-manage');
 
         $validated = $this->validate($request, [
-            'name'             => ['min:2', 'max:100'],
+            'name'             => ['min:1', 'max:100'],
             'email'            => ['min:2', 'email', 'unique:users,email,' . $id],
             'password'         => ['required_with:password_confirm', Password::default()],
             'password-confirm' => ['same:password', 'required_with:password'],
index 8fe855afa771a9e94f4728a45ec015fe645f7f88..37d9b383544bbc66d5eeab3bead7b157ecc4fcb8 100644 (file)
@@ -11,7 +11,6 @@ use BookStack\Users\Models\User;
 use Illuminate\Support\Facades\Hash;
 use Illuminate\Support\Str;
 use Mockery\MockInterface;
-use RuntimeException;
 use Tests\TestCase;
 
 class UserManagementTest extends TestCase
@@ -86,6 +85,16 @@ class UserManagementTest extends TestCase
         $this->assertTrue(Hash::check('newpassword', $userPassword));
     }
 
+    public function test_user_can_be_updated_with_single_char_name()
+    {
+        $user = $this->users->viewer();
+        $this->asAdmin()->put("/settings/users/{$user->id}", [
+            'name' => 'b'
+        ])->assertRedirect('/settings/users');
+
+        $this->assertEquals('b', $user->refresh()->name);
+    }
+
     public function test_user_cannot_be_deleted_if_last_admin()
     {
         $adminRole = Role::getRole('admin');
Morty Proxy This is a proxified and sanitized view of the page, visit original site.