count() === 1) { $repository->attachRole($event->user, 'owner'); } return true; } /** * @param UserChangedEmail $event * * @return bool */ public function sendEmailChangeConfirmMail(UserChangedEmail $event): bool { $newEmail = $event->newEmail; $oldEmail = $event->oldEmail; $user = $event->user; $ipAddress = $event->ipAddress; $token = Preferences::getForUser($user, 'email_change_confirm_token', 'invalid'); $uri = route('profile.confirm-email-change', [$token->data]); try { Mail::to($newEmail)->send(new ConfirmEmailChangeMail($newEmail, $oldEmail, $uri, $ipAddress)); // @codeCoverageIgnoreStart } catch (Swift_TransportException $e) { Log::error($e->getMessage()); } // @codeCoverageIgnoreEnd return true; } /** * @param UserChangedEmail $event * * @return bool */ public function sendEmailChangeUndoMail(UserChangedEmail $event): bool { $newEmail = $event->newEmail; $oldEmail = $event->oldEmail; $user = $event->user; $ipAddress = $event->ipAddress; $token = Preferences::getForUser($user, 'email_change_undo_token', 'invalid'); $uri = route('profile.undo-email-change', [$token->data, hash('sha256', $oldEmail)]); try { Mail::to($oldEmail)->send(new UndoEmailChangeMail($newEmail, $oldEmail, $uri, $ipAddress)); // @codeCoverageIgnoreStart } catch (Swift_TransportException $e) { Log::error($e->getMessage()); } // @codeCoverageIgnoreEnd return true; } /** * @param RequestedNewPassword $event * * @return bool */ public function sendNewPassword(RequestedNewPassword $event): bool { $email = $event->user->email; $ipAddress = $event->ipAddress; $token = $event->token; $url = route('password.reset', [$token]); // send email. try { Mail::to($email)->send(new RequestedNewPasswordMail($url, $ipAddress)); // @codeCoverageIgnoreStart } catch (Swift_TransportException $e) { Log::error($e->getMessage()); } // @codeCoverageIgnoreEnd return true; } /** * This method will send the user a registration mail, welcoming him or her to Firefly III. * This message is only sent when the configuration of Firefly III says so. * * @param RegisteredUser $event * * @return bool */ public function sendRegistrationMail(RegisteredUser $event) { $sendMail = env('SEND_REGISTRATION_MAIL', true); if (!$sendMail) { return true; // @codeCoverageIgnore } // get the email address $email = $event->user->email; $uri = route('index'); $ipAddress = $event->ipAddress; // send email. try { Mail::to($email)->send(new RegisteredUserMail($uri, $ipAddress)); // @codeCoverageIgnoreStart } catch (Swift_TransportException $e) { Log::error($e->getMessage()); } // @codeCoverageIgnoreEnd return true; } }