feat: add form request classes for all auth controllers

This commit is contained in:
2026-03-19 23:14:33 +01:00
parent e18062864d
commit da97c45dd4
5 changed files with 167 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Http\Requests\Auth;
use App\Models\User;
use Illuminate\Foundation\Http\FormRequest;
class CompleteProfileRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return session()->has('socialite_user');
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, array<mixed>>
*/
public function rules(): array
{
return [
'username' => [
'required', 'string', 'max:255', 'alpha_dash',
function ($attribute, $value, $fail): void {
if (User::whereRaw('LOWER(username) = ?', [strtolower($value)])->exists()) {
$fail('The username has already been taken.');
}
},
],
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
];
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests\Auth;
use Illuminate\Foundation\Http\FormRequest;
class ForgotPasswordRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return (bool) config('auth-ui.features.password_reset');
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, array<mixed>>
*/
public function rules(): array
{
return [
'email' => ['required', 'email'],
];
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests\Auth;
use Illuminate\Foundation\Http\FormRequest;
class LoginRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, array<mixed>>
*/
public function rules(): array
{
return [
'login' => ['required', 'string'],
'password' => ['required', 'string'],
];
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Http\Requests\Auth;
use App\Models\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rules;
class RegisterRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return (bool) config('auth-ui.features.registration');
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, array<mixed>>
*/
public function rules(): array
{
return [
'username' => [
'required', 'string', 'max:255', 'alpha_dash',
function ($attribute, $value, $fail): void {
if (User::whereRaw('LOWER(username) = ?', [strtolower($value)])->exists()) {
$fail('The username has already been taken.');
}
},
],
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
];
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Requests\Auth;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rules;
class ResetPasswordRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return (bool) config('auth-ui.features.password_reset');
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, array<mixed>>
*/
public function rules(): array
{
return [
'token' => ['required'],
'email' => ['required', 'email'],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
];
}
}