]> _ Git - pmi.git/commitdiff
wip #5788 @1:00 mot de passe oublié
authorsoufiane <soufiane@cubedesigners.com>
Wed, 14 Jun 2023 09:17:51 +0000 (11:17 +0200)
committersoufiane <soufiane@cubedesigners.com>
Wed, 14 Jun 2023 09:17:51 +0000 (11:17 +0200)
app/Http/Controllers/ClientChangePassword.php [new file with mode: 0644]
app/Http/Controllers/ClientForgotPassword.php
app/Http/Middleware/RedirectClientIfAuthenticated.php
app/Models/AuthClient.php
app/Providers/AuthServiceProvider.php
app/Templates/ChangePassword.php
resources/views/pages/change_password.blade.php
resources/views/pages/forgot_password.blade.php
routes/web.php

diff --git a/app/Http/Controllers/ClientChangePassword.php b/app/Http/Controllers/ClientChangePassword.php
new file mode 100644 (file)
index 0000000..b848d8b
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Cubist\Backpack\app\Magic\Menu\Facade as CubistMenu;
+use Cubist\Backpack\app\Magic\Menu\Menu;
+use Illuminate\Http\Request;
+use App\Models\News;
+use Cubist\Backpack\app\Http\Controllers\CubistFrontController;
+use Cubist\Backpack\app\Magic\PageData;
+use Illuminate\Support\Facades\DB;
+
+class ClientChangePassword extends CubistFrontController
+{
+    public function view(Request $request)
+    {
+        $page = Menu::getNavigation()->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);
+    }
+}
index 747893a705e15bde1bbf56f7a7ea4f81efdd6de3..eecc0162b9ce541fca18a44817bc64b035d6aa66 100644 (file)
@@ -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'));
     }
 }
index ed3c1c3834444ff5c27ba3187d93e63dca5f24fa..a7f7ba9156ccb415f1bf4916c4bebe59f929164f 100644 (file)
@@ -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');
         }
 
index 46d642a17aed3bca730e2ce2a0648f8433363040..46187cc59cd56f4d92085579df9d6904209b8ac5 100644 (file)
@@ -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));
-    }
 }
index 335cfd1db86100ee2b6e8b41d843c127a4093755..82c6e0eab3ce5a2f303914a3bbedf41486b0cfd5 100644 (file)
@@ -26,6 +26,5 @@ class AuthServiceProvider extends ServiceProvider
     public function boot()
     {
         $this->registerPolicies();
-        //
     }
 }
index ccb8962cb998723444ad6c2d8fbc082494899f97..4bea2fe1f784960b5595792f9d4ed3c75b7c07ef 100644 (file)
@@ -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
index 07f62f91fb922c8a6e9c33aab340a2b7830c47cc..0fbc19ee9a58c1c1ce6d5e5f4b8b7f74b36fb3df 100644 (file)
@@ -1,3 +1,7 @@
+@php
+    CubistMenu::setCurrentPage($item);
+@endphp
+
 @extends('layouts/app')
 
 @section('content')
@@ -27,7 +31,7 @@
                         @enderror
                     </div>
                     <div class="form-footer flex flex-wrap-reverse justify-between items-center">
-                        <button class="checkemail form-submit-button btn btn-custom xs:w-full">
+                        <button class="checkemail form-submit-button btn btn-custom w-full">
                             {{ __('Envoyer') }}
                         </button>
                     </div>
index 8bf7622afdd749a651be834be25837c0db72e25c..e3501bb30e51abc5863e11ed4817d2176abf59f6 100644 (file)
@@ -27,7 +27,7 @@
                         </label>
                     </div>
                     <div class="form-footer flex flex-wrap-reverse justify-between items-center">
-                        <button class="checkemail form-submit-button btn btn-custom xs:w-full">
+                        <button class="checkemail form-submit-button btn btn-custom w-full">
                             {{ __('Envoyer') }}
                         </button>
                     </div>
index c900db82a6a05406c858f14e6791e25655496b6f..731f3d44f85b6b9d84023c040b6c5efb93298862 100644 (file)
@@ -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');