'required', 'min:2', 'email', new Unique('users', 'email'),
],
'external_auth_id' => ['string'],
- 'language' => ['string'],
+ 'language' => ['string', 'max:15', 'alpha_dash'],
'password' => [Password::default()],
'roles' => ['array'],
'roles.*' => ['integer'],
(new Unique('users', 'email'))->ignore($userId ?? null),
],
'external_auth_id' => ['string'],
- 'language' => ['string'],
+ 'language' => ['string', 'max:15', 'alpha_dash'],
'password' => [Password::default()],
'roles' => ['array'],
'roles.*' => ['integer'],
$validationRules = [
'name' => ['required'],
'email' => ['required', 'email', 'unique:users,email'],
- 'language' => ['string'],
+ 'language' => ['string', 'max:15', 'alpha_dash'],
'roles' => ['array'],
'roles.*' => ['integer'],
'password' => $passwordRequired ? ['required', Password::default()] : null,
'email' => ['min:2', 'email', 'unique:users,email,' . $id],
'password' => ['required_with:password_confirm', Password::default()],
'password-confirm' => ['same:password', 'required_with:password'],
- 'language' => ['string'],
+ 'language' => ['string', 'max:15', 'alpha_dash'],
'roles' => ['array'],
'roles.*' => ['integer'],
'external_auth_id' => ['string'],
$this->assertDatabaseMissing('activities', ['type' => 'USER_CREATE']);
}
+
+ public function test_user_create_update_fails_if_locale_is_invalid()
+ {
+ $user = $this->getEditor();
+
+ // Too long
+ $resp = $this->asAdmin()->put($user->getEditUrl(), ['language' => 'this_is_too_long']);
+ $resp->assertSessionHasErrors(['language' => 'The language may not be greater than 15 characters.']);
+ session()->flush();
+
+ // Invalid characters
+ $resp = $this->put($user->getEditUrl(), ['language' => 'en<GB']);
+ $resp->assertSessionHasErrors(['language' => 'The language may only contain letters, numbers, dashes and underscores.']);
+ session()->flush();
+
+ // Both on create
+ $resp = $this->post('/settings/users/create', [
+ 'language' => 'en<GB_and_this_is_longer',
+ 'name' => 'My name',
+ 'email' => 'jimmy@example.com',
+ ]);
+ $resp->assertSessionHasErrors(['language' => 'The language may not be greater than 15 characters.']);
+ $resp->assertSessionHasErrors(['language' => 'The language may only contain letters, numbers, dashes and underscores.']);
+ }
}