From 9d5015aef238b9c12b3e04210f749302d51bc617 Mon Sep 17 00:00:00 2001 From: Kawlll Maxso Date: Fri, 22 Mar 2019 10:05:07 +0800 Subject: [PATCH] Forgot Account --- .../Accounts/ForgotAccountLogic.php | 62 +++++++++++++++++++ .../Account/ForgotAccountController.php | 50 +++++++++++++++ .../Auth/ForgotPasswordController.php | 5 ++ .../pages/authentication/forgot.blade.php | 55 ++++++++++++++++ routes/web.php | 3 + 5 files changed, 175 insertions(+) create mode 100644 app/Classes/Modules/ControllersLogic/Accounts/ForgotAccountLogic.php create mode 100644 app/Http/Controllers/Account/ForgotAccountController.php create mode 100644 resources/views/pages/authentication/forgot.blade.php diff --git a/app/Classes/Modules/ControllersLogic/Accounts/ForgotAccountLogic.php b/app/Classes/Modules/ControllersLogic/Accounts/ForgotAccountLogic.php new file mode 100644 index 0000000..b71e334 --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/Accounts/ForgotAccountLogic.php @@ -0,0 +1,62 @@ +createUserInvitation = $createUserInvitation; + $this->canSendAccountInvitation = $canSendAccountInvitation; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws InternalServerErrorException + */ + public function execute(Request $request) { + + try { + + $object = new UserInvitationObject($request->get('role_id'), $request->get('email')); + + if($this->canSendAccountInvitation->execute($object)){ + + + $invitation = $this->createUserInvitation->execute($object); + + event(new UserInvited($invitation)); + + return new JsonResponse("Invitation have been sent!", HttpStatus::RESOURCE_CREATED); + } + + } catch (ResourceConflictException $exception) { + throw new InternalServerErrorException("Failed to send user invitation because {$exception->getMessage()}"); + } + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Account/ForgotAccountController.php b/app/Http/Controllers/Account/ForgotAccountController.php new file mode 100644 index 0000000..7f8cddb --- /dev/null +++ b/app/Http/Controllers/Account/ForgotAccountController.php @@ -0,0 +1,50 @@ +execute($request); +// } +//} + + +namespace App\Http\Controllers\Account; + +use Illuminate\Support\Facades\Mail; +use Illuminate\Http\Request; +use App\Http\Controllers\Controller; + +class ForgotAccountController extends Controller +{ + /** + * Send an e-mail reminder to the user. + * + * @param Request $request + * @param int $id + * @return Response + */ + public function forgot() + { + + Mail::send('emails.reminder', ['user' => "ahmad"], function ($m) { + $m->from('2f114cfc66-6c1272@inbox.mailtrap.io', 'Your Application'); + + $m->to("2f114cfc66-6c1272@inbox.mailtrap.io", "ahmad")->subject('Your Reminder!'); + }); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php index 38e126f..46cbf98 100644 --- a/app/Http/Controllers/Auth/ForgotPasswordController.php +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -28,4 +28,9 @@ class ForgotPasswordController extends Controller { $this->middleware('guest'); } + + public function showForgotForm() + { + return view('pages.authentication.forgot'); + } } diff --git a/resources/views/pages/authentication/forgot.blade.php b/resources/views/pages/authentication/forgot.blade.php new file mode 100644 index 0000000..1c71992 --- /dev/null +++ b/resources/views/pages/authentication/forgot.blade.php @@ -0,0 +1,55 @@ +@extends('layouts.base') + +@section('content') +
+
+
+
+
+
+
+
+ logo +
+
+
+
+
+

Forget Your Password

+

Reset it using your credentials

+
+
+
+
+
+
+
+ @if($errors->any()) + @foreach ($errors->all() as $error) +
{{ $error }}
+ @endforeach + @endif +
+
+ +
+
+ +
+ +
+
+
+
+ {{ csrf_field() }} + +
+
+ +
+
+
+
+
+
+@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index ffcba5a..17ba750 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,6 +1,7 @@ name('login'); +Route::get('/forgot', 'Auth\ForgotPasswordController@showForgotForm')->name('login'); Route::group(['prefix' => 'auth'], function () { Route::post('/login', 'Auth\LoginController@login')->name('auth.login'); @@ -9,6 +10,8 @@ Route::group(['prefix' => 'auth'], function () { Route::post('/registration/create', 'Account\RegisterAccountController@register')->name('auth.registration.create'); + Route::post('/forgot', 'Account\ForgotAccountController@forgot')->name('auth.forgot'); + Route::get('/logout', 'Auth\LoginController@logout')->name('auth.logout'); });