]> _ Git - pmi.git/commitdiff
wip #5788 @3:30 mot de passe oublié
authorsoufiane <soufiane@cubedesigners.com>
Mon, 12 Jun 2023 16:24:08 +0000 (18:24 +0200)
committersoufiane <soufiane@cubedesigners.com>
Mon, 12 Jun 2023 16:24:08 +0000 (18:24 +0200)
app/Http/Controllers/AjaxController.php
app/Http/Controllers/ClientForgotPassword.php [new file with mode: 0644]
app/Models/Client.php
app/Templates/ChangePassword.php [new file with mode: 0644]
app/Templates/ForgotPassword.php [new file with mode: 0644]
resources/js/app.js
resources/views/pages/forgot_password.blade.php [new file with mode: 0644]
routes/web.php

index 14e164bd2f6b30f188e376df5ba479f6915e7e6a..91670fe9d3219d275f157aebdebb1e7bf2e3a9c2 100644 (file)
@@ -3,7 +3,6 @@
 namespace App\Http\Controllers;
 
 use App\Models\Command;
-use App\Models\CommandPanierSchema;
 use App\Models\Panier;
 use Cubist\Backpack\Facades\App;
 use App\Models\Page;
@@ -23,7 +22,7 @@ use Illuminate\Support\Facades\Mail;
 use Illuminate\Support\Facades\Validator;
 use Illuminate\Support\Facades\Hash;
 use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Arr;
+use Illuminate\Support\Facades\Password;
 
 class AjaxController extends CubistFrontController
 {
@@ -434,6 +433,18 @@ class AjaxController extends CubistFrontController
         return $data;
     }
 
+    public function forgotPassword(Request $request) {
+        $request->validate(['email' => 'required|email']);
+
+        $status = Password::sendResetLink(
+            $request->only('email')
+        );
+
+        return $status === Password::RESET_LINK_SENT
+            ? back()->with(['status' => __($status)])
+            : back()->withErrors(['email' => __($status)]);
+    }
+
     public function update(Request $request) {
         $validation = [];
         foreach ($request->all() as $key => $field){
diff --git a/app/Http/Controllers/ClientForgotPassword.php b/app/Http/Controllers/ClientForgotPassword.php
new file mode 100644 (file)
index 0000000..5ebfc52
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+
+namespace App\Http\Controllers;
+
+
+use App\Models\Client;
+use Illuminate\Support\Facades\Mail;
+use Illuminate\Support\Facades\Password;
+use Illuminate\Http\Request;
+use Illuminate\Auth\Passwords\CanResetPassword;
+use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
+use Illuminate\Foundation\Auth\User as Authenticatable;
+
+class ClientForgotPassword
+{
+    /*
+    |--------------------------------------------------------------------------
+    | Password Reset Controller
+    |--------------------------------------------------------------------------
+    |
+    | This controller is responsible for handling password reset emails and
+    | includes a trait which assists in sending these notifications from
+    | your application to your users. Feel free to explore this trait.
+    |
+    */
+    use CanResetPassword;
+
+    public function test(Request $request) {
+        $request->validate(['email' => 'required|email']);
+
+        $email = $request->only('email');
+        $contents = "";
+
+        $client =  Client::where('email', $email['email'])->first();
+
+        $token = Password::createToken($client);
+
+        dd($token);
+
+        Mail::raw($contents, function ($message) use($email) {
+            $message->from(config('mail.from.address'), config('mail.from.name'));
+            $message->sender(config('mail.from.address'), config('mail.from.name'));
+            $message->to($email);
+            $message->bcc('test+pmi@cubedesigners.com');
+            $message->subject("Mise à jour");
+        });
+
+        return $status === Password::RESET_LINK_SENT
+            ? back()->with(['status' => __($status)])
+            : back()->withErrors(['email' => __($status)]);
+    }
+}
index 34b59600c183f5628d769cc720e9a2a518affcff..f5a186c890ed6e58a306ceff1dcf7f564dd31dbc 100644 (file)
@@ -3,6 +3,7 @@ namespace App\Models;
 
 use Cubist\Backpack\app\Magic\Models\CubistMagicAbstractModel;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Notifications\Notifiable;
 
 class Client extends CubistMagicAbstractModel
 {
diff --git a/app/Templates/ChangePassword.php b/app/Templates/ChangePassword.php
new file mode 100644 (file)
index 0000000..8ad5d47
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+
+
+namespace App\Templates;
+
+
+class ChangePassword extends Base
+{
+    public function getName()
+    {
+        return 'Changer le mot de passe';
+    }
+
+    public function init()
+    {
+        parent::init();
+    }
+}
diff --git a/app/Templates/ForgotPassword.php b/app/Templates/ForgotPassword.php
new file mode 100644 (file)
index 0000000..646d406
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+
+
+namespace App\Templates;
+
+
+class ForgotPassword extends Base
+{
+    public function getName()
+    {
+        return 'Mot de passe oublié';
+    }
+
+    public function init()
+    {
+        parent::init();
+    }
+}
index e84987495617fb65100e2cd381d391f4b892b572..d3c3a249146785bbcba8fa2b7a7d3fd17077c9ba 100644 (file)
@@ -97,10 +97,6 @@ const app = new Vue({
         })
     },
 
-    created() {
-
-    },
-
     mounted() {
 
         eventBus.$on('add-item', data => {
diff --git a/resources/views/pages/forgot_password.blade.php b/resources/views/pages/forgot_password.blade.php
new file mode 100644 (file)
index 0000000..8bf7622
--- /dev/null
@@ -0,0 +1,38 @@
+@extends('layouts/app')
+
+@section('content')
+    <div class="signin column bg-grey-200 p-24 mx-auto mb-20">
+        <div class="signin-form">
+            <div class="ajax-form flex flex-col max-w-half">
+                <div class="form-info text-navy mb-10">
+                    <h1 class="text-4xl m-0">Mot de passe oublié</h1>
+                </div>
+
+                <form id="signin-form" class="form-portal" action="/mot-de-passe-oublie"
+                      method="post">
+
+                    <div class="form-errors mb-10" v-cloak v-if="errorsForm['errors']">
+                        <ul class="list-disc list-inside text-red">
+                            <li class="leading-5" v-for="(errorName,errorKey) in errorsForm['errors']" :key="errorKey">
+                                @{{ errorName[0] }}
+                            </li>
+                        </ul>
+                    </div>
+
+                    @csrf
+                    <div class="form-group mb-6">
+                        <label class="form-input text-navy">
+                            {{ __('Email') }}<span>*</span>
+                            <input class="py-3 mt-3" :value="email_signin" type="email" required="required" name="email" />
+                        </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">
+                            {{ __('Envoyer') }}
+                        </button>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+@endsection
index d0fe4d9da69ed3769662af2db66ff1c4f2fbe358..7a81c271daaf99dc53f9bf8be322e35b4d217f1f 100644 (file)
@@ -1,10 +1,12 @@
 <?php
 Route::get('/deconnexion', 'ClientController@logout');
 
+Route::post('/mot-de-passe-oublie', 'ClientForgotPassword@test');
+
 //add specific name to be simple to add active class
 //add middleware to secure this specific page
 Route::any('{page}', 'PageController@catchall')->where(
-    ['page' => '\b(se-connecter|mon-compte|paniers-enregistres)\b']
+    ['page' => '\b(se-connecter|mon-compte|paniers-enregistres|mes-commandes)\b']
 )->name('client')->middleware('client');
 
 Route::any('{page}/{subs?}',  'PageController@catchall')