From 884d22b79f56a90f665fcbe706387035d291934e Mon Sep 17 00:00:00 2001 From: soufiane Date: Wed, 14 Jun 2023 11:17:51 +0200 Subject: [PATCH] =?utf8?q?wip=20#5788=20@1:00=20mot=20de=20passe=20oubli?= =?utf8?q?=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/ClientChangePassword.php | 35 +++++++++++++++++++ app/Http/Controllers/ClientForgotPassword.php | 5 +-- .../RedirectClientIfAuthenticated.php | 17 +++++++-- app/Models/AuthClient.php | 9 ----- app/Providers/AuthServiceProvider.php | 1 - app/Templates/ChangePassword.php | 3 ++ .../views/pages/change_password.blade.php | 6 +++- .../views/pages/forgot_password.blade.php | 2 +- routes/web.php | 6 ++-- 9 files changed, 64 insertions(+), 20 deletions(-) create mode 100644 app/Http/Controllers/ClientChangePassword.php diff --git a/app/Http/Controllers/ClientChangePassword.php b/app/Http/Controllers/ClientChangePassword.php new file mode 100644 index 0000000..b848d8b --- /dev/null +++ b/app/Http/Controllers/ClientChangePassword.php @@ -0,0 +1,35 @@ +findOneById(157)->getEntity(); + $email = $request->get('email'); + $token = $request->get('token'); + + $this->data['page'] = $page->getPageData(); + $this->data['title'] = 'Changer votre mot de passe'; + $this->data['token'] = $token; + $this->data['email'] = $email; + + $path = "changer-votre-mot-de-passe"; + $nav = Menu::getNavigation(); + $item = $nav->findItemWithURL($path,true); + $this->data['item'] = $item; + + //dd($item->hasChildren(), $item->getChildren()); + + return view('pages.change_password', $this->data); + } +} diff --git a/app/Http/Controllers/ClientForgotPassword.php b/app/Http/Controllers/ClientForgotPassword.php index 747893a..eecc016 100644 --- a/app/Http/Controllers/ClientForgotPassword.php +++ b/app/Http/Controllers/ClientForgotPassword.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\AuthClient; +use App\Models\News; use App\User; use App\Models\Client; use Cubist\Backpack\app\Magic\Menu\Menu; @@ -36,9 +37,6 @@ class ClientForgotPassword extends CubistPageController $request->only('email') ); - //$url = 'https://example.com/reset-password?token='.$token; - //$this->notify(new ResetPasswordNotification($url)); - return $status === Password::RESET_LINK_SENT ? back()->with(['status' => __($status)]) : back()->withErrors(['email' => __($status)]); @@ -70,6 +68,5 @@ class ClientForgotPassword extends CubistPageController $client->update(); return redirect('/se-connecter'); - //return redirect()->route('se-connecter')->with('status', __('Mot de passe changer avec succès')); } } diff --git a/app/Http/Middleware/RedirectClientIfAuthenticated.php b/app/Http/Middleware/RedirectClientIfAuthenticated.php index ed3c1c3..a7f7ba9 100644 --- a/app/Http/Middleware/RedirectClientIfAuthenticated.php +++ b/app/Http/Middleware/RedirectClientIfAuthenticated.php @@ -4,6 +4,8 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Hash; class RedirectClientIfAuthenticated { @@ -16,9 +18,20 @@ class RedirectClientIfAuthenticated */ public function handle($request, Closure $next) { - if (($request->path() === "se-connecter") && Auth::guard('web-clients')->check()) { + if($request->path() === "changer-votre-mot-de-passe") { + if(!$request->get('token') && !$request->get('email')) abort('404'); + + $email = $request->get('email'); + $token = $request->get('token'); + $actualToken = DB::table('password_resets')->where('email', $email)->first(); + if(!$actualToken) abort('404'); + + $tokenIsValid = Hash::check($token, $actualToken->token); + if(!$tokenIsValid) abort('404'); + } + if (($request->path() === "se-connecter" || $request->path() === "changer-votre-mot-de-passe") && Auth::guard('web-clients')->check()) { return redirect('/'); - }elseif($request->path() !== "se-connecter" && !Auth::guard('web-clients')->check()) { + }elseif(($request->path() !== "se-connecter" && $request->path() !== "changer-votre-mot-de-passe") && !Auth::guard('web-clients')->check()) { return redirect('/se-connecter'); } diff --git a/app/Models/AuthClient.php b/app/Models/AuthClient.php index 46d642a..46187cc 100644 --- a/app/Models/AuthClient.php +++ b/app/Models/AuthClient.php @@ -33,13 +33,4 @@ class AuthClient extends Authenticatable implements CanResetPasswordContract protected $hidden = [ 'remember_token', ]; - - public function sendPasswordResetNotification($token) { - // The trick is first to instantiate the notification itself - ResetPassword::createUrlUsing(function ($user, string $token) { - return 'https://example.com/reset-password?token='.$token; - }); - - $this->notify(new ResetPasswordNotification($token)); - } } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 335cfd1..82c6e0e 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -26,6 +26,5 @@ class AuthServiceProvider extends ServiceProvider public function boot() { $this->registerPolicies(); - // } } diff --git a/app/Templates/ChangePassword.php b/app/Templates/ChangePassword.php index ccb8962..4bea2fe 100644 --- a/app/Templates/ChangePassword.php +++ b/app/Templates/ChangePassword.php @@ -4,6 +4,9 @@ namespace App\Templates; +use App\Models\News as NewsModel; +use Barryvdh\Debugbar\Facade as Debugbar; +use Carbon\Carbon; use Cubist\Backpack\app\Magic\Menu\PageItem; class ChangePassword extends Base diff --git a/resources/views/pages/change_password.blade.php b/resources/views/pages/change_password.blade.php index 07f62f9..0fbc19e 100644 --- a/resources/views/pages/change_password.blade.php +++ b/resources/views/pages/change_password.blade.php @@ -1,3 +1,7 @@ +@php + CubistMenu::setCurrentPage($item); +@endphp + @extends('layouts/app') @section('content') @@ -27,7 +31,7 @@ @enderror diff --git a/resources/views/pages/forgot_password.blade.php b/resources/views/pages/forgot_password.blade.php index 8bf7622..e3501bb 100644 --- a/resources/views/pages/forgot_password.blade.php +++ b/resources/views/pages/forgot_password.blade.php @@ -27,7 +27,7 @@ diff --git a/routes/web.php b/routes/web.php index c900db8..731f3d4 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,8 +4,10 @@ Route::get('/deconnexion', 'ClientController@logout'); Route::post('/mot-de-passe-oublie', 'ClientForgotPassword@test')->name('password.email'); Route::get('{page}', 'PageController@catchall')->where([ - 'page' => '\b(changer-de-mot-de-passe)\b' -])->name("password.reset"); + 'page' => '\b(changer-votre-mot-de-passe)\b' +])->name("password.reset")->middleware('client'); + +Route::get('changer-votre-mot-de-passe', 'ClientChangePassword@view')->name("password.reset")->middleware('client'); Route::post('/reset-password', 'ClientForgotPassword@reset')->name('password.update'); -- 2.39.5