From 47f663e00221d3c4affa55fb92d9d3f43fca534d Mon Sep 17 00:00:00 2001 From: evazion Date: Sat, 12 Nov 2016 01:04:09 -0600 Subject: [PATCH] Don't filter dmails from moderators (fix #2757). --- app/models/dmail_filter.rb | 2 +- test/unit/dmail_test.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/models/dmail_filter.rb b/app/models/dmail_filter.rb index 9a2e52c6a..6f554ebdf 100644 --- a/app/models/dmail_filter.rb +++ b/app/models/dmail_filter.rb @@ -11,7 +11,7 @@ class DmailFilter < ActiveRecord::Base end def filtered?(dmail) - dmail.from.level <= User::Levels::MODERATOR && has_filter? && (dmail.body =~ regexp || dmail.title =~ regexp || dmail.from.name =~ regexp) + dmail.from.level < User::Levels::MODERATOR && has_filter? && (dmail.body =~ regexp || dmail.title =~ regexp || dmail.from.name =~ regexp) end def has_filter? diff --git a/test/unit/dmail_test.rb b/test/unit/dmail_test.rb index 5cc10c3df..f7d220277 100644 --- a/test/unit/dmail_test.rb +++ b/test/unit/dmail_test.rb @@ -38,6 +38,16 @@ class DmailTest < ActiveSupport::TestCase assert_equal(false, @recipient.has_mail?) end + should "be ignored when sender is a moderator" do + CurrentUser.scoped(FactoryGirl.create(:moderator_user), "127.0.0.1") do + @dmail = FactoryGirl.create(:dmail, :owner => @recipient, :body => "banned word here", :to => @recipient) + end + + assert_equal(false, !!@recipient.dmail_filter.filtered?(@dmail)) + assert_equal(false, @dmail.is_read?) + assert_equal(true, @recipient.has_mail?) + end + context "that is empty" do setup do @recipient.dmail_filter.update_attributes(:words => " ")