From c18453e38c24495d3c0b680f7012028543394f6c Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Silva Date: Tue, 22 Nov 2022 12:14:15 -0300 Subject: [PATCH] FEATURE: Allow staff to flag chat messages (#18919) --- plugins/chat/lib/guardian_extensions.rb | 1 + .../chat/spec/lib/guardian_extensions_spec.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/plugins/chat/lib/guardian_extensions.rb b/plugins/chat/lib/guardian_extensions.rb index cc04ac8629f..c69b1d66328 100644 --- a/plugins/chat/lib/guardian_extensions.rb +++ b/plugins/chat/lib/guardian_extensions.rb @@ -95,6 +95,7 @@ module Chat::GuardianExtensions def can_flag_chat_messages? return false if @user.silenced? + return true if @user.staff? @user.in_any_groups?(SiteSetting.chat_message_flag_allowed_groups_map) end diff --git a/plugins/chat/spec/lib/guardian_extensions_spec.rb b/plugins/chat/spec/lib/guardian_extensions_spec.rb index e0d7bfa2de0..73767fc2151 100644 --- a/plugins/chat/spec/lib/guardian_extensions_spec.rb +++ b/plugins/chat/spec/lib/guardian_extensions_spec.rb @@ -143,6 +143,23 @@ RSpec.describe Chat::GuardianExtensions do end end + describe "#can_flag_chat_message?" do + let!(:message) { Fabricate(:chat_message, chat_channel: channel) } + before { SiteSetting.chat_message_flag_allowed_groups = "" } + + context "when user isn't staff" do + it "returns false" do + expect(guardian.can_flag_chat_message?(message)).to eq(false) + end + end + + context "when user is staff" do + it "returns true" do + expect(staff_guardian.can_flag_chat_message?(message)).to eq(true) + end + end + end + describe "#can_moderate_chat?" do context "for category channel" do fab!(:category) { Fabricate(:category, read_restricted: true) }