class FluidbookController extends Controller
{
+ use ForgotPassword;
+
protected function signin()
{
$validator = Validator::make(request()->all(), [
}
}
- protected function forgotpassword()
- {
- //
- }
-
public static function loadData()
{
$order->total_ht = $total;
$order->save();
-
-
$user->notify(new ResahNotification(ResahNotification::QUOTE_REQUEST_SENT, $order));
User::withoutGlobalScopes()->find(3)->notify(new ResahNotification(ResahNotification::QUOTE_REQUEST, $order));
--- /dev/null
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Password;
+
+trait ForgotPassword
+{
+
+ protected function forgotPassword()
+ {
+ $status = Password::broker('clients')->sendResetLink(
+ ['email' => request('email')],
+ );
+
+ return $status === Password::RESET_LINK_SENT
+ ? response()->json(['status' => __($status)], 200)
+ : response()->json(['status' => __($status)], 400);
+ }
+
+ protected function resetPassword($email, $token)
+ {
+
+ }
+
+ protected function changePassword()
+ {
+
+ }
+
+ protected function guard()
+ {
+ return Auth::guard('clients');
+ }
+
+ protected function broker()
+ {
+ return Password::broker('clients');
+ }
+
+}
class LandingController extends Controller
{
+ use ForgotPassword;
+
public function catchall($path = '')
{
if (!$path) {
use App\Http\Controllers\Operations\Client\Fluidbook;
use App\Http\Controllers\Operations\Client\Landing;
use App\Notifications\ResahNotification;
+use Backpack\CRUD\app\Notifications\ResetPasswordNotification;
use Cubist\Backpack\Magic\Fields\Text;
use Cubist\Backpack\Magic\Models\CubistMagicAuthenticatable;
use Illuminate\Notifications\Notifiable;
}
return parent::onSaving();
}
+
+ public function sendPasswordResetNotification($token)
+ {
+ $this->notify(new ResahNotification(ResahNotification::FORGOT_PASSWORD, ['token' => $token, 'email' => $this->email]));
+ }
}
$subject = 'Votre demande de devis sur Bastide-resah.fr';
$html = 'Votre demande de devis est en cours de traitement (récapitulatif en pièce jointe).<br>Nous vous recontacterons dans les meilleurs délais.';
//$file = storage_path('orders/' . $this->data->id . '.pdf');
+ } else if ($this->type === self::FORGOT_PASSWORD) {
+ $url = url('/landing/resetpassword/' . $this->data['email'] . '/' . $this->data['token']);
+ $subject = 'Réinitialisation de votre mot de passe';
+ $html = 'Vous recevez cet e-mail car nous avons reçu une demande de réinitialisation de mot de passe pour votre compte. Cliquez sur le lien suivant pour le réinitialiser : <a href="' . $url . '">' . $url . '</a><br><br><br>Si vous n\'êtes pas à l\'origine de cette demande, vous pouvez simplement ignorer cet e-mail.';
}
Route::match(['post'], '/fluidbook/signin', \App\Http\Controllers\FluidbookController::class . '@signin')->withoutMiddleware([VerifyCsrfToken::class]);
Route::match(['post'], '/fluidbook/login', \App\Http\Controllers\FluidbookController::class . '@login')->withoutMiddleware([VerifyCsrfToken::class]);
-Route::match(['post'], '/fluidbook/forgotpassword', \App\Http\Controllers\FluidbookController::class . '@forgotPassword')->withoutMiddleware([VerifyCsrfToken::class]);
+Route::match(['post','get'], '/fluidbook/forgotpassword', \App\Http\Controllers\FluidbookController::class . '@forgotPassword')->withoutMiddleware([VerifyCsrfToken::class]);
Route::match(['get'], '/fluidbook/auth', \App\Http\Controllers\FluidbookController::class . '@auth');
Route::match(['post'], '/fluidbook/order', \App\Http\Controllers\FluidbookController::class . '@order')->withoutMiddleware([VerifyCsrfToken::class]);
Route::match(['post'], '/landing/signin', \App\Http\Controllers\LandingController::class . '@signin');
Route::match(['post'], '/landing/login', \App\Http\Controllers\LandingController::class . '@login');
-Route::match(['post'], '/landing/forgotpassword', \App\Http\Controllers\LandingController::class . '@forgotPassword');
+Route::match(['post','get'], '/landing/forgotpassword', \App\Http\Controllers\LandingController::class . '@forgotPassword');
Route::match(['get'], '/landing/logout', \App\Http\Controllers\LandingController::class . '@logout');
+Route::match(['get'], '/landing/resetpassword/{email}/{token}', \App\Http\Controllers\LandingController::class . '@resetPassword');
+Route::match(['post'], '/landing/resetpassword', \App\Http\Controllers\LandingController::class . '@changePassword');
Route::get('/{path?}', \App\Http\Controllers\LandingController::class . '@catchall')->where('path', '.*');