diff --git a/app/models/abuse_report.rb b/app/models/abuse_report.rb index 7583d66ad4a..a8aebe151ed 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 diff --git a/spec/models/abuse_report_spec.rb b/spec/models/abuse_report_spec.rb index 6c68081ff51..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) @@ -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