From d925c1904531d5f2d040fe06082f359996084abe Mon Sep 17 00:00:00 2001 From: Slymee Date: Thu, 14 Dec 2023 15:32:35 +0545 Subject: [PATCH 1/7] Admin Forgot password module: WIP --- .../Controllers/PasswordResetController.php | 81 ++++++++++ .../Requests/ForgotPasswordMailValidator.php | 28 ++++ composer.json | 1 + composer.lock | 152 +++++++++++++++++- database/seeders/AdminDataDetails.php | 2 +- resources/views/backend/adminLogin.blade.php | 9 +- .../views/backend/forgotPassword.blade.php | 44 +++++ .../views/backend/passwordReset.blade.php | 47 ++++++ routes/web.php | 7 + storage/debugbar/.gitignore | 2 + 10 files changed, 370 insertions(+), 3 deletions(-) create mode 100644 app/Http/Controllers/PasswordResetController.php create mode 100644 app/Http/Requests/ForgotPasswordMailValidator.php create mode 100644 resources/views/backend/forgotPassword.blade.php create mode 100644 resources/views/backend/passwordReset.blade.php create mode 100644 storage/debugbar/.gitignore diff --git a/app/Http/Controllers/PasswordResetController.php b/app/Http/Controllers/PasswordResetController.php new file mode 100644 index 0000000..6f77e37 --- /dev/null +++ b/app/Http/Controllers/PasswordResetController.php @@ -0,0 +1,81 @@ +|string> + */ + public function rules(): array + { + return [ + 'email' => ['bail','required','email'], + ]; + } +} diff --git a/composer.json b/composer.json index 8a3d72d..1a4c9c1 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,7 @@ "laravel/tinker": "^2.8" }, "require-dev": { + "barryvdh/laravel-debugbar": "^3.9", "fakerphp/faker": "^1.9.1", "laravel/pint": "^1.0", "laravel/sail": "^1.18", diff --git a/composer.lock b/composer.lock index 7339ac1..1f9fb8d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9c491b8531eec05ba41a11d9276a5749", + "content-hash": "283e34281449c1c77bfa692414cd4a55", "packages": [ { "name": "brick/math", @@ -5711,6 +5711,90 @@ } ], "packages-dev": [ + { + "name": "barryvdh/laravel-debugbar", + "version": "v3.9.2", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-debugbar.git", + "reference": "bfd0131c146973cab164e50f5cdd8a67cc60cab1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/bfd0131c146973cab164e50f5cdd8a67cc60cab1", + "reference": "bfd0131c146973cab164e50f5cdd8a67cc60cab1", + "shasum": "" + }, + "require": { + "illuminate/routing": "^9|^10", + "illuminate/session": "^9|^10", + "illuminate/support": "^9|^10", + "maximebf/debugbar": "^1.18.2", + "php": "^8.0", + "symfony/finder": "^6" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "orchestra/testbench-dusk": "^5|^6|^7|^8", + "phpunit/phpunit": "^8.5.30|^9.0", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.8-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\Debugbar\\ServiceProvider" + ], + "aliases": { + "Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Barryvdh\\Debugbar\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "PHP Debugbar integration for Laravel", + "keywords": [ + "debug", + "debugbar", + "laravel", + "profiler", + "webprofiler" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-debugbar/issues", + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.9.2" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2023-08-25T18:43:57+00:00" + }, { "name": "fakerphp/faker", "version": "v1.23.0", @@ -6032,6 +6116,72 @@ }, "time": "2023-12-02T18:26:39+00:00" }, + { + "name": "maximebf/debugbar", + "version": "v1.19.1", + "source": { + "type": "git", + "url": "https://github.com/maximebf/php-debugbar.git", + "reference": "03dd40a1826f4d585ef93ef83afa2a9874a00523" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/03dd40a1826f4d585ef93ef83afa2a9874a00523", + "reference": "03dd40a1826f4d585ef93ef83afa2a9874a00523", + "shasum": "" + }, + "require": { + "php": "^7.1|^8", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^4|^5|^6" + }, + "require-dev": { + "phpunit/phpunit": ">=7.5.20 <10.0", + "twig/twig": "^1.38|^2.7|^3.0" + }, + "suggest": { + "kriswallsmith/assetic": "The best way to manage assets", + "monolog/monolog": "Log using Monolog", + "predis/predis": "Redis storage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.18-dev" + } + }, + "autoload": { + "psr-4": { + "DebugBar\\": "src/DebugBar/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maxime Bouroumeau-Fuseau", + "email": "maxime.bouroumeau@gmail.com", + "homepage": "http://maximebf.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Debug bar in the browser for php application", + "homepage": "https://github.com/maximebf/php-debugbar", + "keywords": [ + "debug", + "debugbar" + ], + "support": { + "issues": "https://github.com/maximebf/php-debugbar/issues", + "source": "https://github.com/maximebf/php-debugbar/tree/v1.19.1" + }, + "time": "2023-10-12T08:10:52+00:00" + }, { "name": "mockery/mockery", "version": "1.6.6", diff --git a/database/seeders/AdminDataDetails.php b/database/seeders/AdminDataDetails.php index c09e298..f9d047d 100644 --- a/database/seeders/AdminDataDetails.php +++ b/database/seeders/AdminDataDetails.php @@ -19,7 +19,7 @@ public function run(): void { DB::table('users')->insert([ 'username' => 'slymee', - 'email' => 'slymeesmurf@super.com', + 'email' => 'slimismurf@gmail.com', 'password' => Hash::make('slymee'), 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), diff --git a/resources/views/backend/adminLogin.blade.php b/resources/views/backend/adminLogin.blade.php index ae54076..c87ac08 100644 --- a/resources/views/backend/adminLogin.blade.php +++ b/resources/views/backend/adminLogin.blade.php @@ -27,7 +27,14 @@
- Forgot Password? + + Forgot Password? + + + + @if(session('error')) {{ session('error') }} diff --git a/resources/views/backend/forgotPassword.blade.php b/resources/views/backend/forgotPassword.blade.php new file mode 100644 index 0000000..26494d3 --- /dev/null +++ b/resources/views/backend/forgotPassword.blade.php @@ -0,0 +1,44 @@ + + + + + + + + + Forgot Password + @vite(['resources/css/admin-login.css']) + + +
+
+
+ Authenticate +
+
+ +
+ @csrf +
+ +
+ +
+ + @if(session('error')) + {{ session('error') }} + @endif + + @if($errors->any()) + @foreach ($errors->all() as $error) + {{ $error}}
+ @endforeach + @endif +
+ +
+
+
+ + + \ No newline at end of file diff --git a/resources/views/backend/passwordReset.blade.php b/resources/views/backend/passwordReset.blade.php new file mode 100644 index 0000000..7221ea4 --- /dev/null +++ b/resources/views/backend/passwordReset.blade.php @@ -0,0 +1,47 @@ + + + + + + + + + Forgot Password + @vite(['resources/css/admin-login.css']) + + +
+
+
+ Authenticate +
+
+ +
+ @csrf +
+ +
+
+ + + +
+ + @if(session('error')) + {{ session('error') }} + @endif + + @if($errors->any()) + @foreach ($errors->all() as $error) + {{ $error}}
+ @endforeach + @endif +
+ +
+
+
+ + + \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index e916d8a..00e6fbe 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use App\Http\Controllers\AdminDataDetailsController; use App\Http\Controllers\DashboardController; +use App\Http\Controllers\PasswordResetController; use Illuminate\Support\Facades\Route; use SebastianBergmann\CodeCoverage\Report\Html\Dashboard; @@ -33,5 +34,11 @@ Route::get('dashboard', [DashboardController::class, 'index'])->middleware('auth'); + //Forgot Password Routess +Route::get('admin-forgot-password', [PasswordResetController::class, 'index'])->name('forgot-password-view'); +Route::post('forgot-password', [PasswordResetController::class, 'sendResetMail']); +Route::get('admin-password-reset', [PasswordResetController::class, 'showNewPasswordForm']); + + diff --git a/storage/debugbar/.gitignore b/storage/debugbar/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/debugbar/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore From c32783524670627de6a86c7148bcbb0a2d914f86 Mon Sep 17 00:00:00 2001 From: Slymee Date: Thu, 14 Dec 2023 17:14:57 +0545 Subject: [PATCH 2/7] Admin Forgot Password: wip --- app/Http/Controllers/PasswordResetController.php | 4 ++-- resources/views/backend/forgotPassword.blade.php | 2 +- routes/web.php | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/PasswordResetController.php b/app/Http/Controllers/PasswordResetController.php index 6f77e37..6187276 100644 --- a/app/Http/Controllers/PasswordResetController.php +++ b/app/Http/Controllers/PasswordResetController.php @@ -25,8 +25,8 @@ public function sendResetMail(ForgotPasswordMailValidator $request) } - public function showNewPasswordForm(){ - return view('backend.passwordReset'); + public function showNewPasswordForm(string $token){ + return view('backend.passwordReset', ['token'=> $token]); } diff --git a/resources/views/backend/forgotPassword.blade.php b/resources/views/backend/forgotPassword.blade.php index 26494d3..6c50c7d 100644 --- a/resources/views/backend/forgotPassword.blade.php +++ b/resources/views/backend/forgotPassword.blade.php @@ -20,7 +20,7 @@
@csrf
- +
diff --git a/routes/web.php b/routes/web.php index 00e6fbe..797acbf 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,20 +24,20 @@ //admin routes //admin login -Route::get('admin-login', [AdminDataDetailsController::class, 'showLoginForm'])->name('admin-login'); -Route::post('admin-validate', [AdminDataDetailsController::class, 'login']); -Route::post('admin-logout', [AdminDataDetailsController::class, 'logout'])->name('logout'); +Route::get('/admin-login', [AdminDataDetailsController::class, 'showLoginForm'])->name('admin-login'); +Route::post('/admin-validate', [AdminDataDetailsController::class, 'login']); +Route::post('/admin-logout', [AdminDataDetailsController::class, 'logout'])->name('logout'); //admin dashboard -Route::get('dashboard', [DashboardController::class, 'index'])->middleware('auth'); +Route::get('/dashboard', [DashboardController::class, 'index'])->middleware('auth'); //Forgot Password Routess -Route::get('admin-forgot-password', [PasswordResetController::class, 'index'])->name('forgot-password-view'); -Route::post('forgot-password', [PasswordResetController::class, 'sendResetMail']); -Route::get('admin-password-reset', [PasswordResetController::class, 'showNewPasswordForm']); +Route::get('/admin-forgot-password', [PasswordResetController::class, 'index'])->name('forgot-password-view'); +Route::post('/forgot-password', [PasswordResetController::class, 'sendResetMail']); +Route::get('/admin-password-reset/{token}', [PasswordResetController::class, 'showNewPasswordForm']); From 97f67d19ad1c51d39fb53d7573433cefe56e5454 Mon Sep 17 00:00:00 2001 From: Slymee Date: Fri, 15 Dec 2023 17:14:31 +0545 Subject: [PATCH 3/7] Admin forgot password reset mail: WIP --- .../Controllers/PasswordResetController.php | 70 +++++++------------ app/Http/Requests/ResetPasswordValidator.php | 29 ++++++++ routes/web.php | 1 + 3 files changed, 57 insertions(+), 43 deletions(-) create mode 100644 app/Http/Requests/ResetPasswordValidator.php diff --git a/app/Http/Controllers/PasswordResetController.php b/app/Http/Controllers/PasswordResetController.php index 6187276..1643ae4 100644 --- a/app/Http/Controllers/PasswordResetController.php +++ b/app/Http/Controllers/PasswordResetController.php @@ -3,8 +3,13 @@ namespace App\Http\Controllers; use App\Http\Requests\ForgotPasswordMailValidator; +use App\Http\Requests\ResetPasswordValidator; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Illuminate\Support\Str; +use Carbon\Carbon; +use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Mail; class PasswordResetController extends Controller { @@ -21,7 +26,26 @@ public function index() //send reset mail to the user public function sendResetMail(ForgotPasswordMailValidator $request) { - + $token = Str::random(64); + + try{ + DB::table('password_reset_tokens')->insert([ + 'email' => $request->validated(), + 'token' => $token, + "created_at" => Carbon::now(), + ]); + + Mail::send('backend.resetPasswordLink', ['token' => $token], function($message) use($request){ + $message->to($request->validated()); + $message->subject('Reset Password'); + }); + + return back()->with('message', 'Your password reset link has been sent to your email.'); + + + }catch(\Exception $e){ + + } } @@ -30,52 +54,12 @@ public function showNewPasswordForm(string $token){ } - /** - * Show the form for creating a new resource. - */ + public function submitResetPasswordForm(ResetPasswordValidator $request){ - public function create() - { - // } - /** - * Store a newly created resource in storage. - */ - public function store(Request $request) - { - // - } - - /** - * Display the specified resource. - */ - public function show(string $id) - { - // - } - /** - * Show the form for editing the specified resource. - */ - public function edit(string $id) - { - // - } + - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) - { - // - } - /** - * Remove the specified resource from storage. - */ - public function destroy(string $id) - { - // - } } diff --git a/app/Http/Requests/ResetPasswordValidator.php b/app/Http/Requests/ResetPasswordValidator.php new file mode 100644 index 0000000..4fbf321 --- /dev/null +++ b/app/Http/Requests/ResetPasswordValidator.php @@ -0,0 +1,29 @@ +|string> + */ + public function rules(): array + { + return [ + 'new-password' => ['bail','required'], + 'confirm-password' => ['required'], + ]; + } +} diff --git a/routes/web.php b/routes/web.php index 797acbf..c91eef5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -38,6 +38,7 @@ Route::get('/admin-forgot-password', [PasswordResetController::class, 'index'])->name('forgot-password-view'); Route::post('/forgot-password', [PasswordResetController::class, 'sendResetMail']); Route::get('/admin-password-reset/{token}', [PasswordResetController::class, 'showNewPasswordForm']); +Route::post('/admin-password-reset', [PasswordResetController::class, 'submitNewPasswordForm']); From 44ae9c7ce4ae071ea3f18bf9667956885658ad67 Mon Sep 17 00:00:00 2001 From: Slymee Date: Mon, 18 Dec 2023 17:59:33 +0545 Subject: [PATCH 4/7] forget password mail link: WIP --- .../Controllers/PasswordResetController.php | 11 +++++++---- .../views/backend/resetPasswordLink.blade.php | 19 +++++++++++++++++++ routes/web.php | 2 +- 3 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 resources/views/backend/resetPasswordLink.blade.php diff --git a/app/Http/Controllers/PasswordResetController.php b/app/Http/Controllers/PasswordResetController.php index 1643ae4..d59859f 100644 --- a/app/Http/Controllers/PasswordResetController.php +++ b/app/Http/Controllers/PasswordResetController.php @@ -28,23 +28,26 @@ public function sendResetMail(ForgotPasswordMailValidator $request) { $token = Str::random(64); + // dd($request->validated()['email']); + + try{ DB::table('password_reset_tokens')->insert([ - 'email' => $request->validated(), + 'email' => $request->validated()['email'], 'token' => $token, "created_at" => Carbon::now(), ]); Mail::send('backend.resetPasswordLink', ['token' => $token], function($message) use($request){ - $message->to($request->validated()); + $message->to($request->validated()['email']); $message->subject('Reset Password'); }); - + return back()->with('message', 'Your password reset link has been sent to your email.'); }catch(\Exception $e){ - + dd($e); } } diff --git a/resources/views/backend/resetPasswordLink.blade.php b/resources/views/backend/resetPasswordLink.blade.php new file mode 100644 index 0000000..4bbbb7c --- /dev/null +++ b/resources/views/backend/resetPasswordLink.blade.php @@ -0,0 +1,19 @@ + + + + + + Password Reset + + +

Hello!

+ +

You have requested to reset your password. Please click on the following link to reset your password:

+ + Reset Password + +

If you did not request a password reset, please ignore this email.

+ +

Thank you!

+ + \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index c91eef5..02e7e2f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -37,7 +37,7 @@ //Forgot Password Routess Route::get('/admin-forgot-password', [PasswordResetController::class, 'index'])->name('forgot-password-view'); Route::post('/forgot-password', [PasswordResetController::class, 'sendResetMail']); -Route::get('/admin-password-reset/{token}', [PasswordResetController::class, 'showNewPasswordForm']); +Route::get('/admin-password-reset/{token}', [PasswordResetController::class, 'showNewPasswordForm'])->name('password.reset'); Route::post('/admin-password-reset', [PasswordResetController::class, 'submitNewPasswordForm']); From 7ea2e830a6a84132a103478e54785ffb86961643 Mon Sep 17 00:00:00 2001 From: Slymee Date: Tue, 19 Dec 2023 11:45:41 +0545 Subject: [PATCH 5/7] Admin Forgot password reset mail system: completed --- .../Controllers/AdminDataDetailsController.php | 2 +- .../Controllers/PasswordResetController.php | 17 +++++++++++++++++ app/Http/Requests/ResetPasswordValidator.php | 3 ++- resources/views/backend/adminLogin.blade.php | 4 ++-- .../views/backend/forgotPassword.blade.php | 4 ++-- resources/views/backend/passwordReset.blade.php | 10 +++++++--- .../views/backend/resetPasswordLink.blade.php | 2 +- routes/web.php | 3 ++- 8 files changed, 34 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/AdminDataDetailsController.php b/app/Http/Controllers/AdminDataDetailsController.php index e9b28bd..f5242b3 100644 --- a/app/Http/Controllers/AdminDataDetailsController.php +++ b/app/Http/Controllers/AdminDataDetailsController.php @@ -44,7 +44,7 @@ public function login(LoginFormValidator $request): RedirectResponse return redirect()->back()->with('error', $e->getMessage()); } - return redirect()->back()->with('error', 'Credentials do not match!'); + return redirect()->back()->with('message', 'Credentials do not match!'); } diff --git a/app/Http/Controllers/PasswordResetController.php b/app/Http/Controllers/PasswordResetController.php index d59859f..ec361f3 100644 --- a/app/Http/Controllers/PasswordResetController.php +++ b/app/Http/Controllers/PasswordResetController.php @@ -4,13 +4,17 @@ use App\Http\Requests\ForgotPasswordMailValidator; use App\Http\Requests\ResetPasswordValidator; +use App\Models\User; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Str; use Carbon\Carbon; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Mail; +use function PHPUnit\Framework\returnSelf; + class PasswordResetController extends Controller { /** @@ -58,7 +62,20 @@ public function showNewPasswordForm(string $token){ public function submitResetPasswordForm(ResetPasswordValidator $request){ + $tokenData = DB::table('password_reset_tokens')->where('token', $request->validated()['token'])->first(); + + if(!$tokenData): + return back()->with(['message' => 'Invalid token id!!']); + endif; + + + User::where('email', $tokenData->email)->first()->update([ + 'password' => Hash::make($request->validated()['new-password']), + ]); + + DB::table('password_reset_tokens')->where('email', $tokenData->email)->delete(); + return redirect()->route('login')->with('message', 'Password successfully updated!!'); } diff --git a/app/Http/Requests/ResetPasswordValidator.php b/app/Http/Requests/ResetPasswordValidator.php index 4fbf321..df4ea45 100644 --- a/app/Http/Requests/ResetPasswordValidator.php +++ b/app/Http/Requests/ResetPasswordValidator.php @@ -23,7 +23,8 @@ public function rules(): array { return [ 'new-password' => ['bail','required'], - 'confirm-password' => ['required'], + 'confirm-password' => ['required', 'same:new-password'], + 'token' => ['required'], ]; } } diff --git a/resources/views/backend/adminLogin.blade.php b/resources/views/backend/adminLogin.blade.php index c87ac08..f85c87f 100644 --- a/resources/views/backend/adminLogin.blade.php +++ b/resources/views/backend/adminLogin.blade.php @@ -36,8 +36,8 @@ - @if(session('error')) - {{ session('error') }} + @if(session('message')) + {{ session('message') }} @endif @if($errors->any()) diff --git a/resources/views/backend/forgotPassword.blade.php b/resources/views/backend/forgotPassword.blade.php index 6c50c7d..9593a0b 100644 --- a/resources/views/backend/forgotPassword.blade.php +++ b/resources/views/backend/forgotPassword.blade.php @@ -25,8 +25,8 @@ - @if(session('error')) - {{ session('error') }} + @if(session('message')) + {{ session('message') }} @endif @if($errors->any()) diff --git a/resources/views/backend/passwordReset.blade.php b/resources/views/backend/passwordReset.blade.php index 7221ea4..2882faf 100644 --- a/resources/views/backend/passwordReset.blade.php +++ b/resources/views/backend/passwordReset.blade.php @@ -17,19 +17,23 @@
-
+ @csrf


+ + + +
- @if(session('error')) - {{ session('error') }} + @if(session('message')) + {{ session('message') }} @endif @if($errors->any()) diff --git a/resources/views/backend/resetPasswordLink.blade.php b/resources/views/backend/resetPasswordLink.blade.php index 4bbbb7c..1790a88 100644 --- a/resources/views/backend/resetPasswordLink.blade.php +++ b/resources/views/backend/resetPasswordLink.blade.php @@ -10,7 +10,7 @@

You have requested to reset your password. Please click on the following link to reset your password:

- Reset Password + Reset Password

If you did not request a password reset, please ignore this email.

diff --git a/routes/web.php b/routes/web.php index 02e7e2f..b8ba34d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,7 +24,7 @@ //admin routes //admin login -Route::get('/admin-login', [AdminDataDetailsController::class, 'showLoginForm'])->name('admin-login'); +Route::get('/admin-login', [AdminDataDetailsController::class, 'showLoginForm'])->name('login'); Route::post('/admin-validate', [AdminDataDetailsController::class, 'login']); Route::post('/admin-logout', [AdminDataDetailsController::class, 'logout'])->name('logout'); @@ -39,6 +39,7 @@ Route::post('/forgot-password', [PasswordResetController::class, 'sendResetMail']); Route::get('/admin-password-reset/{token}', [PasswordResetController::class, 'showNewPasswordForm'])->name('password.reset'); Route::post('/admin-password-reset', [PasswordResetController::class, 'submitNewPasswordForm']); +Route::post('/submit-new-password', [PasswordResetController::class, 'submitResetPasswordForm']); From 671cdfcb06369aa77bfcf4b4d3277289043ff114 Mon Sep 17 00:00:00 2001 From: Slymee Date: Tue, 19 Dec 2023 13:27:53 +0545 Subject: [PATCH 6/7] Admin password reset: named routes form modifications --- resources/views/backend/forgotPassword.blade.php | 2 +- resources/views/backend/passwordReset.blade.php | 2 +- routes/web.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/views/backend/forgotPassword.blade.php b/resources/views/backend/forgotPassword.blade.php index 9593a0b..2526922 100644 --- a/resources/views/backend/forgotPassword.blade.php +++ b/resources/views/backend/forgotPassword.blade.php @@ -17,7 +17,7 @@
-
+ @csrf
diff --git a/resources/views/backend/passwordReset.blade.php b/resources/views/backend/passwordReset.blade.php index 2882faf..f8dd2a5 100644 --- a/resources/views/backend/passwordReset.blade.php +++ b/resources/views/backend/passwordReset.blade.php @@ -17,7 +17,7 @@
- + @csrf
diff --git a/routes/web.php b/routes/web.php index b8ba34d..148a4db 100644 --- a/routes/web.php +++ b/routes/web.php @@ -36,10 +36,10 @@ //Forgot Password Routess Route::get('/admin-forgot-password', [PasswordResetController::class, 'index'])->name('forgot-password-view'); -Route::post('/forgot-password', [PasswordResetController::class, 'sendResetMail']); +Route::post('/forgot-password', [PasswordResetController::class, 'sendResetMail'])->name('admin.forgot.password'); Route::get('/admin-password-reset/{token}', [PasswordResetController::class, 'showNewPasswordForm'])->name('password.reset'); Route::post('/admin-password-reset', [PasswordResetController::class, 'submitNewPasswordForm']); -Route::post('/submit-new-password', [PasswordResetController::class, 'submitResetPasswordForm']); +Route::post('/submit-new-password', [PasswordResetController::class, 'submitResetPasswordForm'])->name('admin.new.password'); From 874d94e2004c674f271f7cfa4aedad062a90f69b Mon Sep 17 00:00:00 2001 From: Slymee Date: Tue, 19 Dec 2023 13:33:39 +0545 Subject: [PATCH 7/7] Admin password reset: exception block --- app/Http/Controllers/PasswordResetController.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/PasswordResetController.php b/app/Http/Controllers/PasswordResetController.php index ec361f3..a15a2c3 100644 --- a/app/Http/Controllers/PasswordResetController.php +++ b/app/Http/Controllers/PasswordResetController.php @@ -51,7 +51,7 @@ public function sendResetMail(ForgotPasswordMailValidator $request) }catch(\Exception $e){ - dd($e); + // dd($e); } } @@ -62,7 +62,8 @@ public function showNewPasswordForm(string $token){ public function submitResetPasswordForm(ResetPasswordValidator $request){ - $tokenData = DB::table('password_reset_tokens')->where('token', $request->validated()['token'])->first(); + try{ + $tokenData = DB::table('password_reset_tokens')->where('token', $request->validated()['token'])->first(); if(!$tokenData): return back()->with(['message' => 'Invalid token id!!']); @@ -76,6 +77,9 @@ public function submitResetPasswordForm(ResetPasswordValidator $request){ DB::table('password_reset_tokens')->where('email', $tokenData->email)->delete(); return redirect()->route('login')->with('message', 'Password successfully updated!!'); + }catch(\Exception $e){ + // dd($e); + } }