diff --git a/app/jobs/regular/notify_mailing_list_subscribers.rb b/app/jobs/regular/notify_mailing_list_subscribers.rb index 055d7a5c61..f966dbaa19 100644 --- a/app/jobs/regular/notify_mailing_list_subscribers.rb +++ b/app/jobs/regular/notify_mailing_list_subscribers.rb @@ -34,6 +34,10 @@ module Jobs WHERE cu.category_id = ? AND cu.user_id = users.id AND cu.notification_level = ? )', post.topic.category_id, CategoryUser.notification_levels[:muted]) + if SiteSetting.must_approve_users + users = users.where(approved: true) + end + DiscourseEvent.trigger(:notify_mailing_list_subscribers, users, post) users.find_each do |user| if Guardian.new(user).can_see?(post) diff --git a/spec/jobs/notify_mailing_list_subscribers_spec.rb b/spec/jobs/notify_mailing_list_subscribers_spec.rb index f6252b9120..57692656e9 100644 --- a/spec/jobs/notify_mailing_list_subscribers_spec.rb +++ b/spec/jobs/notify_mailing_list_subscribers_spec.rb @@ -38,6 +38,14 @@ describe Jobs::NotifyMailingListSubscribers do context "when mailing list mode is globally enabled" do before { SiteSetting.disable_mailing_list_mode = false } + context "when site requires approval and user is not approved" do + before do + SiteSetting.login_required = true + SiteSetting.must_approve_users = true + end + include_examples "no emails" + end + context "with an invalid post_id" do before { post.update(deleted_at: Time.now) } include_examples "no emails"