Convert controller validation to Form Requests

This commit is contained in:
Shift
2023-03-30 14:15:10 +00:00
parent 0faefd419b
commit 2fcf05db34
10 changed files with 111 additions and 21 deletions
@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Auth;
use App\Http\Requests\Auth\ShowLinkRequestFormForgotPasswordRequest;
use App\Http\Controllers\Controller;
use App\Jobs\SendPasswordForgottenEmail;
use App\Models\Settings;
@@ -38,7 +39,7 @@ class ForgotPasswordController extends Controller
/**
* @throws \Exception
*/
public function showLinkRequestForm(Request $request): void
public function showLinkRequestForm(ShowLinkRequestFormForgotPasswordRequest $request): void
{
$sent = '';
$email = request()->input('email') ?? '';
@@ -47,9 +48,6 @@ class ForgotPasswordController extends Controller
app('smarty.view')->assign('error', 'Missing parameter(email and/or apikey to send password reset');
} else {
if (config('captcha.enabled') === true && (! empty(config('captcha.secret')) && ! empty(config('captcha.sitekey')))) {
$this->validate($request, [
'g-recaptcha-response' => 'required|captcha',
]);
}
//
// Check users exists and send an email
@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Auth;
use App\Http\Requests\Auth\LoginLoginRequest;
use App\Events\UserLoggedIn;
use App\Http\Controllers\Controller;
use App\Models\Settings;
@@ -53,7 +54,7 @@ class LoginController extends Controller
* @throws \Illuminate\Auth\AuthenticationException
* @throws \Illuminate\Validation\ValidationException
*/
public function login(Request $request)
public function login(LoginLoginRequest $request)
{
$validator = Validator::make($request->all(), [
'username' => ['required'],
@@ -81,9 +82,6 @@ class LoginController extends Controller
if ($user !== null) {
if (config('captcha.enabled') === true && (! empty(config('captcha.secret')) && ! empty(config('captcha.sitekey')))) {
$this->validate($request, [
'g-recaptcha-response' => ['required', 'captcha'],
]);
}
$rememberMe = $request->has('rememberme') && $request->input('rememberme') === 'on';
@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Auth;
use App\Http\Requests\Auth\RegisterRegisterRequest;
use App\Http\Controllers\Controller;
use App\Models\Invitation;
use App\Models\Settings;
@@ -112,7 +113,7 @@ class RegisterController extends Controller
*
* @throws ValidationException
*/
public function register(Request $request)
public function register(RegisterRegisterRequest $request)
{
$error = $userName = $password = $confirmPassword = $email = $inviteCode = '';
$showRegister = 1;
@@ -129,9 +130,6 @@ class RegisterController extends Controller
]);
if (config('captcha.enabled') === true && (! empty(config('captcha.secret')) && ! empty(config('captcha.sitekey')))) {
$this->validate($request, [
'g-recaptcha-response' => ['required', 'captcha'],
]);
}
if ($validator->fails()) {
+2 -5
View File
@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Http\Requests\ContactContactURequest;
use App\Jobs\SendContactUsEmail;
use Illuminate\Http\Request;
@@ -10,13 +11,9 @@ class ContactUsController extends BasePageController
/**
* @throws \Illuminate\Validation\ValidationException
*/
public function contact(Request $request): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|null
public function contact(ContactContactURequest $request): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|null
{
$this->setPreferences();
$this->validate($request, [
'useremail' => 'required',
'username' => 'required',
]);
if (config('captcha.enabled') === true && (! empty(config('captcha.secret')) && ! empty(config('captcha.sitekey')))) {
$this->validate($request, [
@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Http\Requests\Disable2faPasswordSecurityRequest;
use App\Models\PasswordSecurity;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -70,16 +71,14 @@ class PasswordSecurityController extends Controller
return redirect('2fa')->with('error', 'Invalid Verification Code, Please try again.');
}
public function disable2fa(Request $request): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|\Illuminate\Contracts\Foundation\Application
public function disable2fa(Disable2faPasswordSecurityRequest $request): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|\Illuminate\Contracts\Foundation\Application
{
if (! (Hash::check($request->get('current-password'), Auth::user()->password))) {
// The passwords matches
return redirect()->back()->with('error', 'Your password does not match with your account password. Please try again.');
}
$validatedData = $request->validate([
'current-password' => 'required',
]);
$validatedData = $request->validated();
$user = Auth::user();
$user->passwordSecurity->google2fa_enable = 0;
$user->passwordSecurity->save();
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Requests\Auth;
use Illuminate\Foundation\Http\FormRequest;
class LoginLoginRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'g-recaptcha-response' => [
'required',
'captcha',
],
];
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Requests\Auth;
use Illuminate\Foundation\Http\FormRequest;
class RegisterRegisterRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'g-recaptcha-response' => [
'required',
'captcha',
],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Auth;
use Illuminate\Foundation\Http\FormRequest;
class ShowLinkRequestFormForgotPasswordRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return ['g-recaptcha-response' => 'required|captcha'];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ContactContactURequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return ['g-recaptcha-response' => 'required|captcha'];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class Disable2faPasswordSecurityRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return ['current-password' => 'required'];
}
}