From 080960a15ed3eee0d35e4708342c9e1a1167e1c3 Mon Sep 17 00:00:00 2001 From: Roman Rizzi Date: Thu, 19 Mar 2020 15:12:42 -0300 Subject: [PATCH] FIX: Show the envelope icon when the flagged post is a PM. Flagged PM must be exclusively reviewed by admins (#9232) --- .../templates/components/reviewable-topic-link.hbs | 2 +- app/models/reviewable.rb | 2 +- spec/models/reviewable_spec.rb | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/templates/components/reviewable-topic-link.hbs b/app/assets/javascripts/discourse/templates/components/reviewable-topic-link.hbs index 4b1704aec4d..b43876ab484 100644 --- a/app/assets/javascripts/discourse/templates/components/reviewable-topic-link.hbs +++ b/app/assets/javascripts/discourse/templates/components/reviewable-topic-link.hbs @@ -1,6 +1,6 @@
{{#if reviewable.topic}} - {{topic-status topic=reviewable.topic}} + {{topic-status topic=reviewable.topic showPrivateMessageIcon=true}} {{reviewable.topic.title}} {{category-badge reviewable.category}} {{reviewable-tags tags=reviewable.topic_tags tagName=''}} diff --git a/app/models/reviewable.rb b/app/models/reviewable.rb index 78d4b98e650..13468019e3e 100644 --- a/app/models/reviewable.rb +++ b/app/models/reviewable.rb @@ -133,7 +133,7 @@ class Reviewable < ActiveRecord::Base target: target, topic: topic, created_by: created_by, - reviewable_by_moderator: reviewable_by_moderator, + reviewable_by_moderator: reviewable_by_moderator && !(topic&.private_message?), payload: payload, potential_spam: potential_spam ) diff --git a/spec/models/reviewable_spec.rb b/spec/models/reviewable_spec.rb index 9b46eb7c529..30bd5d68550 100644 --- a/spec/models/reviewable_spec.rb +++ b/spec/models/reviewable_spec.rb @@ -78,6 +78,17 @@ RSpec.describe Reviewable, type: :model do expect(r1.pending?).to eq(true) expect(r0.pending?).to eq(false) end + + it 'sets the reviewable_by_moderator attribute to false when the topic is a PM' do + pm_topic = Fabricate(:private_message_topic) + post = Fabricate(:post, topic: pm_topic) + reviewable = ReviewableFlaggedPost.needs_review!( + target: post, topic: pm_topic, + created_by: Discourse.system_user, reviewable_by_moderator: true + ) + + expect(reviewable.reviewable_by_moderator).to eq(false) + end end context ".list_for" do