From e940d17badd194948c7ead743d0ad5a0ff1ea2fe Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Sat, 2 Dec 2023 22:29:57 +0500 Subject: [PATCH] Check file extensions --- app/Helpers/helpers.php | 9 +++---- .../Controllers/Auth/RegisterController.php | 8 +++--- app/Http/Kernel.php | 1 + app/Http/Middleware/PhoneIsNotVerified.php | 25 +++++++++++++++++++ app/Models/User.php | 8 ++++++ app/Nova/Resources/Order/Loan/LoanOrder.php | 8 +++--- app/Rules/PhoneCodeVerification.php | 2 +- .../vendor/nova/pages/register.blade.php | 8 +----- routes/web.php | 2 +- 9 files changed, 48 insertions(+), 23 deletions(-) create mode 100644 app/Http/Middleware/PhoneIsNotVerified.php diff --git a/app/Helpers/helpers.php b/app/Helpers/helpers.php index a5f414c..ed2a850 100644 --- a/app/Helpers/helpers.php +++ b/app/Helpers/helpers.php @@ -7,7 +7,6 @@ use Illuminate\Support\Facades\Log; /** * Un mask phone from "+(993)-xx-xx-xx-xx" - * @param string|int $phone */ function unMaskPhone(string|int $phone): string { @@ -23,8 +22,8 @@ function sendSMS(string|int $phone, string|int $message) { $client = new Client(); $headers = [ - 'Content-Type' => 'application/json;charset=utf-8;', - 'Charset' => 'UTF-8' + 'Content-Type' => 'application/json;charset=utf-8;', + 'Charset' => 'UTF-8', ]; $body = 'JSON={ "SendRequest": { @@ -32,11 +31,11 @@ function sendSMS(string|int $phone, string|int $message) "Version": "1", "Lang": "EN", "MobilePhone": "993'.$phone.'", - "Text": "'. $message .'" + "Text": "'.$message.'" } }'; $request = new Request('POST', 'http://10.3.158.103:8080/kpsmsroute/online.request', $headers, $body); - + try { $res = $client->sendAsync($request)->wait(); diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index a8150d8..58d069c 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -8,12 +8,11 @@ use App\Models\User; use App\Rules\PhoneCodeVerification; use Illuminate\Auth\Events\Registered; use Illuminate\Contracts\View\View; -use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; -use Laravel\Nova\Nova; use Illuminate\Support\Facades\Validator; +use Laravel\Nova\Nova; class RegisterController extends Controller { @@ -39,7 +38,6 @@ class RegisterController extends Controller /** * Handle a registration request for the application. * - * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse */ public function register(Request $request) @@ -104,11 +102,11 @@ class RegisterController extends Controller public function verifySmsCode(Request $request) { $request->validate([ - 'code' => ['required', 'integer', new PhoneCodeVerification()] + 'code' => ['required', 'integer', new PhoneCodeVerification()], ]); auth()->user()->update([ - 'phone_verified_at' => now() + 'phone_verified_at' => now(), ]); return redirect(Nova::path()); diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 494c050..59d4e15 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -64,5 +64,6 @@ class Kernel extends HttpKernel 'signed' => \App\Http\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + 'un_verified' => \App\Http\Middleware\RedirectIfPhoneIsVerified::class, ]; } diff --git a/app/Http/Middleware/PhoneIsNotVerified.php b/app/Http/Middleware/PhoneIsNotVerified.php new file mode 100644 index 0000000..24526b8 --- /dev/null +++ b/app/Http/Middleware/PhoneIsNotVerified.php @@ -0,0 +1,25 @@ +check() && auth()->user()->phoneIsVerified()) { + return redirect(Nova::path()); + } + + return $next($request); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 5dadf0b..2246701 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -114,4 +114,12 @@ class User extends Authenticatable { return $this->id === $loanOrder->user_id; } + + /** + * Check if phone is verified + */ + public function phoneIsVerified(): bool + { + return ! is_null($this->phone_verified_at); + } } diff --git a/app/Nova/Resources/Order/Loan/LoanOrder.php b/app/Nova/Resources/Order/Loan/LoanOrder.php index 7ed867c..5c3f65a 100644 --- a/app/Nova/Resources/Order/Loan/LoanOrder.php +++ b/app/Nova/Resources/Order/Loan/LoanOrder.php @@ -316,28 +316,28 @@ class LoanOrder extends Resource Image::make(__('Passport (page 1)'), 'passport_one') ->size('w-1/2') ->deletable(false) - ->rules('max:2048') + ->rules('max:2048', 'mimes:jpg,png,jpeg') ->creationRules('required') ->updateRules('nullable'), Image::make(__('Passport (page 2-3)'), 'passport_two') ->size('w-1/2') ->deletable(false) - ->rules('max:2048') + ->rules('max:2048', 'mimes:jpg,png,jpeg') ->creationRules('required') ->updateRules('nullable'), Image::make(__('Passport (page 8-9)'), 'passport_three') ->size('w-1/2') ->deletable(false) - ->rules('max:2048') + ->rules('max:2048', 'mimes:jpg,png,jpeg') ->creationRules('required') ->updateRules('nullable'), Image::make(__('Passport (page 32)'), 'passport_four') ->size('w-1/2') ->deletable(false) - ->rules('max:2048') + ->rules('max:2048', 'mimes:jpg,png,jpeg') ->creationRules('required') ->updateRules('nullable'), ]), diff --git a/app/Rules/PhoneCodeVerification.php b/app/Rules/PhoneCodeVerification.php index 069ebb3..ebbaeb0 100644 --- a/app/Rules/PhoneCodeVerification.php +++ b/app/Rules/PhoneCodeVerification.php @@ -18,7 +18,7 @@ class PhoneCodeVerification implements ValidationRule $verification = Verification::where('username', auth()->user()->phone) ->where('code', $value) ->first(); - + if (! $verification) { $fail(__('Write a correct data please')); } diff --git a/resources/views/vendor/nova/pages/register.blade.php b/resources/views/vendor/nova/pages/register.blade.php index 833f707..b5a6434 100644 --- a/resources/views/vendor/nova/pages/register.blade.php +++ b/resources/views/vendor/nova/pages/register.blade.php @@ -90,13 +90,7 @@ @enderror -
- -
+
diff --git a/routes/web.php b/routes/web.php index a6c1544..79b99f6 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,7 +20,7 @@ Route::middleware('guest')->group(function () { Route::post('/register', [RegisterController::class, 'register']); }); -Route::middleware('auth')->group(function () { +Route::middleware(['auth', 'un_verified'])->group(function () { Route::get('sms-verification', [RegisterController::class, 'smsVerification'])->name('sms-verification'); Route::post('sms-verification', [RegisterController::class, 'verifySmsCode']); });