diff --git a/app/Http/Controllers/EmployeesController.php b/app/Http/Controllers/EmployeesController.php index b408771..ff51bb4 100644 --- a/app/Http/Controllers/EmployeesController.php +++ b/app/Http/Controllers/EmployeesController.php @@ -278,7 +278,9 @@ class EmployeesController extends Controller public function passwordForgottenSubmit(EmployeeForgottenPasswordRequest $request) { + /** @var \App\Models\Employee */ $employee = Employee::where('matricule', $request->matricule)->firstOrFail(); + /** @var \App\Models\EmployeeMailToken */ $token = $employee->token ?? new EmployeeMailToken(); $token->fill([ 'email' => $employee->email, @@ -286,7 +288,9 @@ class EmployeesController extends Controller ]); $token->saveOrFail(); $token->employee()->associate($token); - SendMailResetPasswordToEmployee::dispatchAfterResponse($employee); + $token->saveOrFail(); + $employee->saveOrFail(); + SendMailResetPasswordToEmployee::dispatchAfterResponse($employee, $token); return \redirect()->back()->with('successMail', true); } diff --git a/app/Jobs/SendMailResetPasswordToEmployee.php b/app/Jobs/SendMailResetPasswordToEmployee.php index 569f2d6..0fc32a0 100644 --- a/app/Jobs/SendMailResetPasswordToEmployee.php +++ b/app/Jobs/SendMailResetPasswordToEmployee.php @@ -4,6 +4,7 @@ namespace App\Jobs; use App\Mail\EmployeePasswordResetMail; use App\Models\Employee; +use App\Models\EmployeeMailToken; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; @@ -19,16 +20,22 @@ class SendMailResetPasswordToEmployee implements ShouldQueue use Queueable; use SerializesModels; + /** @var \App\Models\Employee */ protected $employee; + /** @var \App\Models\EmployeeMailToken */ + protected $token; + /** * Create a new job instance. * - * @return void + * @param \App\Models\Employee $employee + * @param \App\Models\EmployeeMailToken $token */ - public function __construct(Employee $employee) + public function __construct(Employee $employee, EmployeeMailToken $token) { $this->employee = $employee; + $this->token = $token; } /** @@ -38,7 +45,7 @@ class SendMailResetPasswordToEmployee implements ShouldQueue */ public function handle() { - Mail::to(['email' => $this->employee->token->email])->send(new EmployeePasswordResetMail($this->employee)); + Mail::to(['email' => $this->token->email])->send(new EmployeePasswordResetMail($this->employee)); Log::debug(sprintf('Sent %s to %s', EmployeePasswordResetMail::class, config('mail.contactsList.contact'))); } }