From b4f36507e07c1fbdff9b3a03a638eda148377a01 Mon Sep 17 00:00:00 2001 From: Natalie Tay Date: Tue, 2 Jan 2024 18:32:50 +0800 Subject: [PATCH] FIX: Allow the flags to be cleaned up (#25085) Currently, the reviewable queue includes ReviewableFlaggedPost with posts that have already been hidden. This allows for such hidden posts to be cleared up by the auto-tool. --- app/models/reviewable_flagged_post.rb | 2 +- spec/models/reviewable_flagged_post_spec.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/models/reviewable_flagged_post.rb b/app/models/reviewable_flagged_post.rb index f1b0279d2a7..69b29a4234e 100644 --- a/app/models/reviewable_flagged_post.rb +++ b/app/models/reviewable_flagged_post.rb @@ -108,7 +108,7 @@ class ReviewableFlaggedPost < Reviewable label: "reviewables.actions.ignore.title", ) - if !post.hidden? + if !post.hidden? || guardian.user.is_system_user? build_action(actions, :ignore_and_do_nothing, icon: "external-link-alt", bundle: ignore) end if guardian.can_delete_post_or_topic?(post) diff --git a/spec/models/reviewable_flagged_post_spec.rb b/spec/models/reviewable_flagged_post_spec.rb index 568f0e9dbaa..5e8760df898 100644 --- a/spec/models/reviewable_flagged_post_spec.rb +++ b/spec/models/reviewable_flagged_post_spec.rb @@ -99,6 +99,21 @@ RSpec.describe ReviewableFlaggedPost, type: :model do expect(reviewable.actions_for(guardian).has?(:delete_user_block)).to be true end end + + context "for ignore_and_do_nothing" do + it "does not return `ignore_and_do_nothing` when post is hidden" do + post.update(hidden: true) + + expect(reviewable.actions_for(guardian).has?(:ignore_and_do_nothing)).to eq(false) + end + + it "returns `ignore_and_do_nothing` if the acting user is system" do + post.update(hidden: true) + system_guardian = Guardian.new(Discourse.system_user) + + expect(reviewable.actions_for(system_guardian).has?(:ignore_and_do_nothing)).to eq(true) + end + end end it "agree_and_keep agrees with the flags and keeps the post" do