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/resources/views/pages/authentication/login.blade.php b/resources/views/pages/authentication/login.blade.php index d6d7809..f2579d6 100644 --- a/resources/views/pages/authentication/login.blade.php +++ b/resources/views/pages/authentication/login.blade.php @@ -60,7 +60,7 @@
- Forgot your password? + Forgot your password?
diff --git a/resources/views/pages/authentication/password/change.blade.php b/resources/views/pages/authentication/password/change.blade.php new file mode 100644 index 0000000..949e9b4 --- /dev/null +++ b/resources/views/pages/authentication/password/change.blade.php @@ -0,0 +1,120 @@ +@extends('layouts.base') + +@section('content') +
+
+
+
+
+
+
+
+ logo +
+
+
+
+
+

Change Your Password

+
+
+
+
+
+
+
+ @if($errors->any()) + @foreach ($errors->all() as $error) +
{{ $error }}
+ @endforeach + @endif +
+
+
+ @csrf + +
+ +
+ +
+
+
+ +
+ + @if ($errors->has('password')) + + {{ $errors->first('password') }} + + @endif +
+
+
+ +
+ +
+
+
+
+ +
+
+
+ + {{--
--}} + {{--@csrf--}} + + {{----}} + + {{--
--}} + {{----}} + + {{--
--}} + {{----}} + + {{--@if ($errors->has('email'))--}} + {{----}} + {{--{{ $errors->first('email') }}--}} + {{----}} + {{--@endif--}} + {{--
--}} + {{--
--}} + + {{--
--}} + {{----}} + + {{--
--}} + {{----}} + + {{--@if ($errors->has('password'))--}} + {{----}} + {{--{{ $errors->first('password') }}--}} + {{----}} + {{--@endif--}} + {{--
--}} + {{--
--}} + + {{--
--}} + {{----}} + + {{--
--}} + {{----}} + {{--
--}} + {{--
--}} + + {{--
--}} + {{--
--}} + {{----}} + {{--
--}} + {{--
--}} + {{--
--}} +
+
+
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/pages/authentication/password/forgot.blade.php b/resources/views/pages/authentication/password/forgot.blade.php new file mode 100644 index 0000000..b8d9336 --- /dev/null +++ b/resources/views/pages/authentication/password/forgot.blade.php @@ -0,0 +1,92 @@ +@extends('layouts.base') + +@section('content') + @if (session('status')) +
+
+
+
+
+
+
+ +
We just sent an email to reset your password
+

Click on the link we've sent you to reset your password. + if you have not received an email, Please check your spambox

+
+ +
+
+
+
+
+
+ @else +
+
+
+
+
+
+
+
+ logo +
+
+
+
+
+

Forget Your Password

+

Reset it using your credentials

+
+
+
+
+
+
+
+ @if($errors->any()) + @foreach ($errors->all() as $error) +
{{ $error }}
+ @endforeach + @endif +
+
+
+ @csrf + +
+ +
+ +
+
+ + @if ($errors->has('email')) + + {{ $errors->first('email') }} + + @endif +
+
+ +
+
+ {{ csrf_field() }} + +
+
+
+
+
+
+
+
+ @endif +@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 7cf9840..a2885b0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -9,6 +9,15 @@ Route::group(['prefix' => 'auth'], function () { Route::post('/registration/create', 'Account\RegisterAccountController@register')->name('auth.registration.create'); + Route::get('password/forgot', function () { + return view('pages.authentication.password.forgot'); + })->name('password.forgot'); + Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email'); + Route::get('password/reset/{token}', function ($token){ + return view('pages.authentication.password.change',['token' => $token]); + })->name('password.reset'); + Route::post('password/update', 'Auth\ResetPasswordController@reset')->name('password.update'); + Route::get('/logout', 'Auth\LoginController@logout')->name('auth.logout'); });