diff --git a/app/Listeners/HandleUserSettingsChanged.php b/app/Listeners/HandleUserSettingsChanged.php index f1910ab2f116..3413812eaba7 100644 --- a/app/Listeners/HandleUserSettingsChanged.php +++ b/app/Listeners/HandleUserSettingsChanged.php @@ -46,6 +46,8 @@ class HandleUserSettingsChanged if ($event->user && $event->user->isEmailBeingChanged()) { $this->userMailer->sendConfirmation($event->user); + $this->userMailer->sendEmailChanged($event->user); + Session::flash('warning', trans('texts.verify_email')); } } diff --git a/app/Models/User.php b/app/Models/User.php index e1a5556a80a4..6162bffef2bb 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -319,9 +319,7 @@ class User extends Authenticatable */ public function isEmailBeingChanged() { - return Utils::isNinjaProd() - && $this->email != $this->getOriginal('email') - && $this->getOriginal('confirmed'); + return Utils::isNinjaProd() && $this->email != $this->getOriginal('email'); } /** diff --git a/app/Ninja/Mailers/UserMailer.php b/app/Ninja/Mailers/UserMailer.php index 6b5d130b697a..9cd34e9455f3 100644 --- a/app/Ninja/Mailers/UserMailer.php +++ b/app/Ninja/Mailers/UserMailer.php @@ -38,6 +38,31 @@ class UserMailer extends Mailer $this->sendTo($user->email, $fromEmail, $fromName, $subject, $view, $data); } + /** + * @param User $user + * @param User|null $invitor + */ + public function sendEmailChanged(User $user) + { + $oldEmail = $user->getOriginal('email'); + $newEmail = $user->email; + + if (! $oldEmail || ! $newEmail) { + return; + } + + $view = 'user_message'; + $subject = trans('texts.email_address_changed'); + + $data = [ + 'user' => $user, + 'userName' => $user->getDisplayName(), + 'primaryMessage' => trans('texts.email_address_changed_message', ['old_email' => $oldEmail, 'new_email' => $newEmail]), + ]; + + $this->sendTo($oldEmail, CONTACT_EMAIL, CONTACT_NAME, $subject, $view, $data); + } + /** * @param User $user * @param Invoice $invoice diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index a0185f4a1db7..e5b566621cde 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2742,6 +2742,8 @@ $LANG = array( 'change_requires_purge' => 'Changing this setting requires :link the account data.', 'purging' => 'purging', 'warning_local_refund' => 'The refund will be recorded in the app but will NOT be processed by the payment gateway.', + 'email_address_changed' => 'Email address has been changed', + 'email_address_changed_message' => 'The email address for your account has been changed from :old_email to :new_email.', );