From da9eee52625cb2d12158cf185a5f983c220aaf0f Mon Sep 17 00:00:00 2001 From: Penar Musaraj Date: Mon, 1 Oct 2018 14:01:24 -0400 Subject: [PATCH] FIX: Force enable user PM emails option when user posts to a group by email. --- lib/email/receiver.rb | 5 +++++ spec/components/email/receiver_spec.rb | 8 ++++++++ spec/fixtures/emails/group_existing_user.eml | 11 +++++++++++ 3 files changed, 24 insertions(+) create mode 100644 spec/fixtures/emails/group_existing_user.eml diff --git a/lib/email/receiver.rb b/lib/email/receiver.rb index 0e445fdddcb..4cc9ec520a6 100644 --- a/lib/email/receiver.rb +++ b/lib/email/receiver.rb @@ -609,6 +609,11 @@ module Email end def create_group_post(group, user, body, elided, hidden_reason_id) + # ensure user PM emails are enabled (since user is posting via email) + if !user.staged && !user.user_option.email_private_messages + user.user_option.update!(email_private_messages: true) + end + message_ids = Email::Receiver.extract_reply_message_ids(@mail, max_message_id_count: 5) post_ids = [] diff --git a/spec/components/email/receiver_spec.rb b/spec/components/email/receiver_spec.rb index f7721a0e906..dc00a9a1886 100644 --- a/spec/components/email/receiver_spec.rb +++ b/spec/components/email/receiver_spec.rb @@ -609,6 +609,14 @@ describe Email::Receiver do expect(Post.last.raw).to match(/discourse\.rb/) end + it "enables user's email_private_messages option when user emails group" do + user = Fabricate(:user, email: "existing@bar.com") + user.user_option.update_columns(email_private_messages: false) + expect { process(:group_existing_user) }.to change(Topic, :count) + user.reload + expect(user.user_option.email_private_messages).to eq(true) + end + context "with forwarded emails enabled" do before { SiteSetting.enable_forwarded_emails = true } diff --git a/spec/fixtures/emails/group_existing_user.eml b/spec/fixtures/emails/group_existing_user.eml new file mode 100644 index 00000000000..06f705022c5 --- /dev/null +++ b/spec/fixtures/emails/group_existing_user.eml @@ -0,0 +1,11 @@ +Return-Path: +From: Foo Bar +To: team@bar.com +Subject: This is a topic to a group from an existing user +Date: Fri, 15 Jan 2016 00:12:43 +0100 +Message-ID: <32@foo.bar.mail> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable + +Hey there, this is an email to a group mailbox from an existing user.