Commit 10fd7287 authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

Enviar Email de Recuperação de Senha

parent 21c644e5
...@@ -33,11 +33,22 @@ class NewPasswordController extends Controller ...@@ -33,11 +33,22 @@ class NewPasswordController extends Controller
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$request->validate([ $request->validate(
'token' => ['required'], [
'email' => ['required', 'email'], 'token' => ['required'],
'password' => ['required', 'confirmed', Rules\Password::defaults()], 'email' => ['required', 'email'],
]); 'password' => ['required', 'min:8', 'max:255', 'confirmed'],
],
[
'email.email' => 'O "E-mail" deve ser um e-mail válido.',
'email.required' => 'O "E-mail" é um campo obrigatório.',
'password.required' => 'A "Nova Senha" é obrigatória!',
'password.min' => 'A "Nova Senha" deve contér no minímo 8 caracteres!',
'password.max' => 'A campo "Nova Senha" deve contér no máximo 255 caracteres!',
'password.confirmed' => 'As senhas devem ser iguais!',
]
);
// Here we will attempt to reset the user's password. If it is successful we // Here we will attempt to reset the user's password. If it is successful we
// will update the password on an actual user model and persist it to the // will update the password on an actual user model and persist it to the
......
...@@ -28,9 +28,15 @@ class PasswordResetLinkController extends Controller ...@@ -28,9 +28,15 @@ class PasswordResetLinkController extends Controller
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$request->validate([ $request->validate(
'email' => ['required', 'email'], [
]); 'email' => ['required', 'email'],
],
[
'email.email' => 'O "E-mail" deve ser um e-mail válido.',
'email.required' => 'O "E-mail" é um campo obrigatório.',
]
);
// We will send the password reset link to this user. Once we have attempted // We will send the password reset link to this user. Once we have attempted
// to send the link, we will examine the response then see the message we // to send the link, we will examine the response then see the message we
...@@ -40,7 +46,7 @@ class PasswordResetLinkController extends Controller ...@@ -40,7 +46,7 @@ class PasswordResetLinkController extends Controller
); );
return $status == Password::RESET_LINK_SENT return $status == Password::RESET_LINK_SENT
? back()->with('status', __($status)) ? back()->with('success', 'Enviamos seu link de redefinição de senha por e-mail! Verifique a sua inbox!')
: back()->withInput($request->only('email')) : back()->withInput($request->only('email'))
->withErrors(['email' => __($status)]); ->withErrors(['email' => __($status)]);
} }
......
...@@ -78,6 +78,7 @@ class UserController extends Controller ...@@ -78,6 +78,7 @@ class UserController extends Controller
return view('users.create', [ return view('users.create', [
'menu' => Menu::USERS, 'menu' => Menu::USERS,
'model' => $model, 'model' => $model,
'tab' => 'user',
]); ]);
} }
...@@ -118,14 +119,14 @@ class UserController extends Controller ...@@ -118,14 +119,14 @@ class UserController extends Controller
Session::flash('warning', 'Não existem papeis cadastrados para esse usuário!'); Session::flash('warning', 'Não existem papeis cadastrados para esse usuário!');
} }
$tab_active = $request->query('tab_active') ?? 'user'; $tab = $request->query('tab') ?? 'user';
return view('users.update', [ return view('users.update', [
'menu' => Menu::USERS, 'menu' => Menu::USERS,
'model' => $model, 'model' => $model,
'status' => $status, 'status' => $status,
'profiles' => $profiles, 'profiles' => $profiles,
'tab_active' => $tab_active 'tab' => $tab
]); ]);
} }
......
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
namespace App\Providers; namespace App\Providers;
use Illuminate\Auth\Notifications\ResetPassword;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider class AuthServiceProvider extends ServiceProvider
...@@ -25,6 +27,22 @@ class AuthServiceProvider extends ServiceProvider ...@@ -25,6 +27,22 @@ class AuthServiceProvider extends ServiceProvider
{ {
$this->registerPolicies(); $this->registerPolicies();
// ResetPassword::toMailUsing(function($notifiable, $url)
{
$minutes = config('auth.passwords.'.config('auth.defaults.passwords').'.expire');
$url = url(route('password.reset', [
'token' => $url,
'email' => $notifiable->getEmailForPasswordReset()
]), false);
return (new MailMessage)
->subject('Notificação de redefinição de senha')
->line('Você está recebendo este e-mail porque recebemos uma solicitação de redefinição de senha para sua conta.')
->action('Redefinir senha', $url)
->line('Este link de redefinição de senha expirará em '. $minutes .' minutos.')
->line('Se você não solicitou uma redefinição de senha, nenhuma outra ação será necessária');
});
} }
} }
This diff is collapsed.
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
<!-- Validation Errors --> <!-- Validation Errors -->
<x-auth-validation-errors class="alert alert-danger mb-2" :errors="$errors" /> <x-auth-validation-errors class="alert alert-danger mb-2" :errors="$errors" />
@include('components.alerts')
<div class="signin-form d-md-flex"> <div class="signin-form d-md-flex">
@csrf @csrf
...@@ -25,11 +27,6 @@ ...@@ -25,11 +27,6 @@
<div class="w-100"> <div class="w-100">
<h4 class="mb-4">Redefinir senha</h4> <h4 class="mb-4">Redefinir senha</h4>
</div> </div>
<!-- Session Status -->
<x-auth-session-status class="mb-4" :status="session('status')" />
<!-- Validation Errors -->
<x-auth-validation-errors class="mb-4" :errors="$errors" />
<form method="POST" action="{{ route('password.email') }}"> <form method="POST" action="{{ route('password.email') }}">
@csrf @csrf
......
...@@ -14,11 +14,6 @@ ...@@ -14,11 +14,6 @@
<h4 class="mb-4">Redefinir senha</h4> <h4 class="mb-4">Redefinir senha</h4>
</div> </div>
<!-- Session Status -->
<x-auth-session-status class="mb-4" :status="session('status')" />
<!-- Validation Errors -->
<x-auth-validation-errors class="mb-4" :errors="$errors" />
<form method="POST" action="{{ route('password.update') }}"> <form method="POST" action="{{ route('password.update') }}">
@csrf @csrf
<!-- Password Reset Token --> <!-- Password Reset Token -->
...@@ -34,14 +29,14 @@ ...@@ -34,14 +29,14 @@
<!-- Password --> <!-- Password -->
<div class="form-group mt-3"> <div class="form-group mt-3">
<x-label for="password" :value="__('Password')" /> <x-label for="password" :value="__('Nova Senha')" />
<x-input id="password" class="form-control" type="password" name="password" required /> <x-input id="password" class="form-control" type="password" name="password" required />
</div> </div>
<!-- Confirm Password --> <!-- Confirm Password -->
<div class="form-group mt-3"> <div class="form-group mt-3">
<x-label for="password_confirmation" :value="__('Confirm Password')" /> <x-label for="password_confirmation" :value="__('Confirmar Senha')" />
<x-input id="password_confirmation" class="form-control" type="password" <x-input id="password_confirmation" class="form-control" type="password"
name="password_confirmation" required/> name="password_confirmation" required/>
......
@php @php
if($tab_active == 'user') $userTabActive = '';
$userContainerActive = '';
$paperTabActive = '';
$paperContainerActive = '';
if($tab == 'user')
{ {
$userTabActive = 'active'; $userTabActive = 'active';
$userContainerActive = 'show active'; $userContainerActive = 'show active';
$paperTabActive = '';
$paperContainerActive = '';
} }
if($tab_active == 'paper') if($tab == 'paper')
{ {
$userTabActive = '';
$userContainerActive = '';
$paperTabActive = 'active'; $paperTabActive = 'active';
$paperContainerActive = 'show active'; $paperContainerActive = 'show active';
} }
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
@include('users._form', [ @include('users._form', [
'action' => route('user_store'), 'action' => route('user_store'),
'model' => $model, 'model' => $model,
'tab' => $tab
]) ])
</div> </div>
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
'model' => $model, 'model' => $model,
'status' => $status, 'status' => $status,
'profiles' => $profiles, 'profiles' => $profiles,
'tab_active' => $tab_active, 'tab' => $tab,
]) ])
@include('components.modal', [ @include('components.modal', [
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment