mirror of
https://github.com/discourse/discourse.git
synced 2024-12-13 22:37:41 +08:00
427d54b2b0
Zeitwerk simplifies working with dependencies in dev and makes it easier reloading class chains. We no longer need to use Rails "require_dependency" anywhere and instead can just use standard Ruby patterns to require files. This is a far reaching change and we expect some followups here.
42 lines
1.6 KiB
Ruby
42 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'email/message_builder'
|
|
|
|
class RejectionMailer < ActionMailer::Base
|
|
include Email::BuildEmailHelper
|
|
|
|
DISALLOWED_TEMPLATE_ARGS = [:to,
|
|
:from,
|
|
:base_url,
|
|
:user_preferences_url,
|
|
:include_respond_instructions,
|
|
:html_override,
|
|
:add_unsubscribe_link,
|
|
:respond_instructions,
|
|
:style,
|
|
:body,
|
|
:post_id,
|
|
:topic_id,
|
|
:subject,
|
|
:template,
|
|
:allow_reply_by_email,
|
|
:private_reply,
|
|
:from_alias]
|
|
|
|
# Send an email rejection message.
|
|
#
|
|
# template - i18n key under system_messages
|
|
# message_from - Who to send the rejection messsage to
|
|
# template_args - arguments to pass to i18n for interpolation into the message
|
|
# Certain keys are disallowed in template_args to avoid confusing the
|
|
# BuildEmailHelper. You can see the list in DISALLOWED_TEMPLATE_ARGS.
|
|
def send_rejection(template, message_from, template_args)
|
|
if template_args.keys.any? { |k| DISALLOWED_TEMPLATE_ARGS.include? k }
|
|
raise ArgumentError.new('Reserved key in template arguments')
|
|
end
|
|
|
|
build_email(message_from, template_args.merge(template: "system_messages.#{template}"))
|
|
end
|
|
|
|
end
|