FEATURE: Do not autoclose topics due to user flagging that are authored by staff

FEATURE: Do not autoclose topics due to user flagging that are authored by staff

diff --git a/app/models/post_action.rb b/app/models/post_action.rb
index 055c5d1..f0d7f07 100644
--- a/app/models/post_action.rb
+++ b/app/models/post_action.rb
@@ -565,6 +565,7 @@ class PostAction < ActiveRecord::Base
   MAXIMUM_FLAGS_PER_POST = 3
 
   def self.auto_close_threshold_reached?(topic)
+    return if topic.user&.staff?
     flags = PostAction.active
       .flags
       .joins(:post)
diff --git a/spec/models/post_action_spec.rb b/spec/models/post_action_spec.rb
index d17b664..95f5317 100644
--- a/spec/models/post_action_spec.rb
+++ b/spec/models/post_action_spec.rb
@@ -920,6 +920,21 @@ describe PostAction do
         expect(topic_status_update.status_type).to eq(TopicTimer.types[:open])
       end
 
+      context "on a staff post" do
+        let(:staff_user) { Fabricate(:user, moderator: true) }
+        let(:topic) { Fabricate(:topic, user: staff_user) }
+
+        it "will not close topics opened by staff" do
+          [flagger1, flagger2].each do |flagger|
+            [post1, post2, post3].each do |post|
+              PostAction.act(flagger, post, PostActionType.types[:inappropriate])
+            end
+          end
+
+          expect(topic.reload.closed).to eq(false)
+        end
+      end
+
       it "will keep the topic in closed status until the community flags are handled" do
         freeze_time

GitHub sha: 3359b3ba