From e8564f3cd4ee43e63cb0d08ffe364ffcc8d020a8 Mon Sep 17 00:00:00 2001 From: calm Date: Fri, 1 Mar 2024 12:11:56 -0500 Subject: [PATCH 1/3] downcase email before compare --- app/models/abuse_report.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/abuse_report.rb b/app/models/abuse_report.rb index 9a8d55d923c..0470cb766f1 100644 --- a/app/models/abuse_report.rb +++ b/app/models/abuse_report.rb @@ -21,7 +21,7 @@ def check_for_spam end def logged_in_with_matching_email? - User.current_user.present? && User.current_user.email == email + User.current_user.present? && User.current_user.email.downcase == email.downcase end def akismet_attributes From 11430d094a46da2d8dc95f0eaf57399b23f9fc09 Mon Sep 17 00:00:00 2001 From: forceofcalm Date: Fri, 11 Oct 2024 19:46:32 -0400 Subject: [PATCH 2/3] added test --- spec/models/abuse_report_spec.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/models/abuse_report_spec.rb b/spec/models/abuse_report_spec.rb index 02db5899521..4acb9178d23 100644 --- a/spec/models/abuse_report_spec.rb +++ b/spec/models/abuse_report_spec.rb @@ -340,6 +340,13 @@ expect(spam_report.errors[:base]).to include("This report looks like spam to our system!") end + it "is valid even if the email casing is different" do + legit_user.email = legit_user.email.upcase + legit_user.save + User.current_user = legit_user + expect(safe_report.save).to be_truthy + end + it "is valid even with spam if logged in and providing correct email" do User.current_user = legit_user expect(safe_report.save).to be_truthy From fb60f14bb63dd48513797f1a8e5f977d29be4316 Mon Sep 17 00:00:00 2001 From: forceofcalm Date: Fri, 10 Jan 2025 13:48:55 -0500 Subject: [PATCH 3/3] updated `:safe_report`s initialization --- spec/models/abuse_report_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/models/abuse_report_spec.rb b/spec/models/abuse_report_spec.rb index cffd200f047..941844a3c6d 100644 --- a/spec/models/abuse_report_spec.rb +++ b/spec/models/abuse_report_spec.rb @@ -329,7 +329,7 @@ context "when report is spam" do let(:legit_user) { create(:user) } let(:spam_report) { build(:abuse_report, username: 'viagra-test-123') } - let(:safe_report) { build(:abuse_report, username: 'viagra-test-123', email: legit_user.email) } + let!(:safe_report) { build(:abuse_report, username: 'viagra-test-123', email: legit_user.email) } before do allow(Akismetor).to receive(:spam?).and_return(true)