|
|
|
@ -38,8 +38,12 @@ class DeviseNotifyMailer < Devise::Mailer |
|
|
|
username = record.email |
|
|
|
username = record.email |
|
|
|
if email_changed?(record) |
|
|
|
if email_changed?(record) |
|
|
|
username = record.unconfirmed_email |
|
|
|
username = record.unconfirmed_email |
|
|
|
|
|
|
|
if someone_else_changed_email?(record) |
|
|
|
send_email_changed_to_old_email(record) |
|
|
|
send_email_changed_to_old_email(record) |
|
|
|
send_confirmation_email(record.unconfirmed_email, record, token, username) |
|
|
|
send_email_changed_to_new_email(record, token) |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
send_confirmation_email(record.unconfirmed_email, record, token, record.unconfirmed_email) |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
send_confirmation_email(record.email, record, token, username) |
|
|
|
send_confirmation_email(record.email, record, token, username) |
|
|
|
end |
|
|
|
end |
|
|
|
@ -55,10 +59,12 @@ class DeviseNotifyMailer < Devise::Mailer |
|
|
|
Rails.application.credentials[:email_allowlist] || [] |
|
|
|
Rails.application.credentials[:email_allowlist] || [] |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def send_email_changed_to_old_email(record) |
|
|
|
def someone_else_changed_email?(record) |
|
|
|
# Do not send if user changed own email |
|
|
|
# Do not send if user changed own email |
|
|
|
return unless record.versions.last.actor != record && record.versions.last.changeset.key?("unconfirmed_email") && FeatureToggle.new_email_journey? |
|
|
|
FeatureToggle.new_email_journey? && record.versions.last.actor != record && record.versions.last.changeset.key?("unconfirmed_email") |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def send_email_changed_to_old_email(record) |
|
|
|
return true if intercept_send?(record.email) |
|
|
|
return true if intercept_send?(record.email) |
|
|
|
|
|
|
|
|
|
|
|
send_email( |
|
|
|
send_email( |
|
|
|
@ -71,6 +77,22 @@ class DeviseNotifyMailer < Devise::Mailer |
|
|
|
) |
|
|
|
) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def send_email_changed_to_new_email(record, token) |
|
|
|
|
|
|
|
return true if intercept_send?(record.email) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
link = "#{user_confirmation_url}?confirmation_token=#{token}" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
send_email( |
|
|
|
|
|
|
|
record.email, |
|
|
|
|
|
|
|
User::FOR_NEW_EMAIL_CHANGED_BY_OTHER_USER_TEMPLATE_ID, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
new_email: record.unconfirmed_email, |
|
|
|
|
|
|
|
old_email: record.email, |
|
|
|
|
|
|
|
link:, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def email_changed?(record) |
|
|
|
def email_changed?(record) |
|
|
|
record.confirmable_template == User::CONFIRMABLE_TEMPLATE_ID && (record.unconfirmed_email.present? && record.unconfirmed_email != record.email) |
|
|
|
record.confirmable_template == User::CONFIRMABLE_TEMPLATE_ID && (record.unconfirmed_email.present? && record.unconfirmed_email != record.email) |
|
|
|
end |
|
|
|
end |
|
|
|
|