From 4c06c38bc234d9da9920fca84e4dad916e7a5d24 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 7 May 2025 09:25:49 +0330 Subject: [PATCH] validate telephone id after form request --- .../{ValidateIP.php => ValidateAdmin.php} | 4 ++-- app/Http/Requests/Auth/LoginRequest.php | 24 +++++++++++++++---- app/Http/Requests/Call/ListRequest.php | 2 +- app/Http/Requests/ChangePasswordRequest.php | 2 +- config/pulse.php | 4 ++-- config/telescope.php | 4 ++-- 6 files changed, 27 insertions(+), 13 deletions(-) rename app/Http/Middleware/{ValidateIP.php => ValidateAdmin.php} (80%) diff --git a/app/Http/Middleware/ValidateIP.php b/app/Http/Middleware/ValidateAdmin.php similarity index 80% rename from app/Http/Middleware/ValidateIP.php rename to app/Http/Middleware/ValidateAdmin.php index 46b778c..3f0449c 100644 --- a/app/Http/Middleware/ValidateIP.php +++ b/app/Http/Middleware/ValidateAdmin.php @@ -6,7 +6,7 @@ use Closure; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; -class ValidateIP +class ValidateAdmin { /** * Handle an incoming request. @@ -15,7 +15,7 @@ class ValidateIP */ public function handle(Request $request, Closure $next): Response { - if (in_array($request->ip(), config('globalVariables.TRUSTED_IP'))) { + if (auth()->user()->username === 'witel') { return $next($request); } abort(403); diff --git a/app/Http/Requests/Auth/LoginRequest.php b/app/Http/Requests/Auth/LoginRequest.php index e3a87c2..a2cd90f 100644 --- a/app/Http/Requests/Auth/LoginRequest.php +++ b/app/Http/Requests/Auth/LoginRequest.php @@ -4,6 +4,7 @@ namespace App\Http\Requests\Auth; use App\Models\User; use Illuminate\Contracts\Validation\ValidationRule; +use Illuminate\Validation\Validator; use Illuminate\Foundation\Http\FormRequest; class LoginRequest extends FormRequest @@ -13,11 +14,6 @@ class LoginRequest extends FormRequest */ public function authorize(): bool { - $user = User::query()->where('telephone_id', '=', $this->telephone_id)->first(); - if ($user && $user->is_online === 1) { - return false; - } - $user->update(['telephone_id' => null]); return true; } @@ -34,4 +30,22 @@ class LoginRequest extends FormRequest 'telephone_id' => 'required|string' ]; } + + public function after(): array + { + return [ + function (Validator $validator) { + $user = User::query()->where('telephone_id', '=', $this->telephone_id); + if ($user->exists()) { + if ($user->first()->is_online) { + $validator->errors()->add( + 'telephone_id', + __('messages.telephone_id_is_in_use') + ); + } + $user->first()->update(['telephone_id' => null]); + } + } + ]; + } } diff --git a/app/Http/Requests/Call/ListRequest.php b/app/Http/Requests/Call/ListRequest.php index 664a005..96d7132 100644 --- a/app/Http/Requests/Call/ListRequest.php +++ b/app/Http/Requests/Call/ListRequest.php @@ -23,7 +23,7 @@ class ListRequest extends FormRequest public function rules(): array { return [ - 'phone_number' => 'regex:/^09\d{9}$/', + 'phone_number' => 'string', 'size' => 'integer' ]; } diff --git a/app/Http/Requests/ChangePasswordRequest.php b/app/Http/Requests/ChangePasswordRequest.php index fb7d1e9..da65623 100644 --- a/app/Http/Requests/ChangePasswordRequest.php +++ b/app/Http/Requests/ChangePasswordRequest.php @@ -23,7 +23,7 @@ class ChangePasswordRequest extends FormRequest { return [ 'current_password' => 'required|min:8|max:255', - 'new_password' => 'required|confirmed|regex:/^(?=.*[a-zA-Z])(?=.*\d).+$/|min:8|max:255', + 'new_password' => 'required|regex:/^(?=.*[a-zA-Z])(?=.*\d).+$/|min:8|max:255', ]; } } diff --git a/config/pulse.php b/config/pulse.php index 1adb993..dd98e39 100644 --- a/config/pulse.php +++ b/config/pulse.php @@ -30,7 +30,7 @@ return [ | */ - 'path' => env('PULSE_PATH', 'pulse'), + 'path' => env('PULSE_PATH', 'server/pulse'), /* |-------------------------------------------------------------------------- @@ -122,7 +122,7 @@ return [ 'middleware' => [ 'web', - \App\Http\Middleware\ValidateIP::class + \App\Http\Middleware\ValidateAdmin::class ], /* diff --git a/config/telescope.php b/config/telescope.php index 53c8a97..982f860 100644 --- a/config/telescope.php +++ b/config/telescope.php @@ -42,7 +42,7 @@ return [ | */ - 'path' => env('TELESCOPE_PATH', 'telescope'), + 'path' => env('TELESCOPE_PATH', 'server/telescope'), /* |-------------------------------------------------------------------------- @@ -94,7 +94,7 @@ return [ 'middleware' => [ 'web', - \App\Http\Middleware\ValidateIP::class, + \App\Http\Middleware\ValidateAdmin::class, ], /*