FEATURE: new 'should_add_email_attachments' plugin modifier

That can be used by plugins to control whether email attachments should be sent.

Internal ref - t/132149
This commit is contained in:
Régis Hanol 2024-06-26 12:17:33 +02:00
parent 8cfae168d1
commit 54a59be617
2 changed files with 16 additions and 0 deletions

View File

@ -360,6 +360,8 @@ module Email
email_size = 0
posts.each do |post|
next unless DiscoursePluginRegistry.apply_modifier(:should_add_email_attachments, post)
post.uploads.each do |original_upload|
optimized_1X = original_upload.optimized_images.first

View File

@ -561,6 +561,20 @@ RSpec.describe Email::Sender do
)
end
context "with a plugin" do
before { DiscoursePluginRegistry.clear_modifiers! }
after { DiscoursePluginRegistry.clear_modifiers! }
it "allows plugins to control whether attachments are included" do
SiteSetting.email_total_attachment_size_limit_kb = 10_000
Plugin::Instance.new.register_modifier(:should_add_email_attachments) { false }
Email::Sender.new(message, :valid_type).send
expect(message.attachments.size).to eq(0)
end
end
it "adds only non-image uploads as attachments to the email" do
SiteSetting.email_total_attachment_size_limit_kb = 10_000
Email::Sender.new(message, :valid_type).send