Skip to content

Commit 6f1c54d

Browse files
committed
Users: Changed name validation to min:1 instead of 2
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
1 parent 4dc75ba commit 6f1c54d

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

app/Users/Controllers/UserApiController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected function rules(int $userId = null): array
3737
{
3838
return [
3939
'create' => [
40-
'name' => ['required', 'string', 'min:2', 'max:100'],
40+
'name' => ['required', 'string', 'min:1', 'max:100'],
4141
'email' => [
4242
'required', 'string', 'email', 'min:2', new Unique('users', 'email'),
4343
],
@@ -49,7 +49,7 @@ protected function rules(int $userId = null): array
4949
'send_invite' => ['boolean'],
5050
],
5151
'update' => [
52-
'name' => ['string', 'min:2', 'max:100'],
52+
'name' => ['string', 'min:1', 'max:100'],
5353
'email' => [
5454
'string',
5555
'email',

app/Users/Controllers/UserController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public function update(Request $request, int $id)
144144
$this->checkPermission('users-manage');
145145

146146
$validated = $this->validate($request, [
147-
'name' => ['min:2', 'max:100'],
147+
'name' => ['min:1', 'max:100'],
148148
'email' => ['min:2', 'email', 'unique:users,email,' . $id],
149149
'password' => ['required_with:password_confirm', Password::default()],
150150
'password-confirm' => ['same:password', 'required_with:password'],

tests/User/UserManagementTest.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
use Illuminate\Support\Facades\Hash;
1212
use Illuminate\Support\Str;
1313
use Mockery\MockInterface;
14-
use RuntimeException;
1514
use Tests\TestCase;
1615

1716
class UserManagementTest extends TestCase
@@ -86,6 +85,16 @@ public function test_user_password_update()
8685
$this->assertTrue(Hash::check('newpassword', $userPassword));
8786
}
8887

88+
public function test_user_can_be_updated_with_single_char_name()
89+
{
90+
$user = $this->users->viewer();
91+
$this->asAdmin()->put("/settings/users/{$user->id}", [
92+
'name' => 'b'
93+
])->assertRedirect('/settings/users');
94+
95+
$this->assertEquals('b', $user->refresh()->name);
96+
}
97+
8998
public function test_user_cannot_be_deleted_if_last_admin()
9099
{
91100
$adminRole = Role::getRole('admin');

0 commit comments

Comments
 (0)