From 55bdd9e6a2dc1daffa1fca18ecad360d6b64ab20 Mon Sep 17 00:00:00 2001 From: Dan Ungureanu Date: Mon, 11 Nov 2019 18:42:45 +0200 Subject: [PATCH] FIX: Do not skip some emails in user search (#8317) It used to skip the email addresses containing the plus sign. --- app/assets/javascripts/discourse/lib/user-search.js.es6 | 2 +- test/javascripts/lib/user-search-test.js.es6 | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/lib/user-search.js.es6 b/app/assets/javascripts/discourse/lib/user-search.js.es6 index 63fbb2da71..b1a75ae34e 100644 --- a/app/assets/javascripts/discourse/lib/user-search.js.es6 +++ b/app/assets/javascripts/discourse/lib/user-search.js.es6 @@ -136,7 +136,7 @@ function organizeResults(r, options) { // will not find me, which is a reasonable compromise // // we also ignore if we notice a double space or a string that is only a space -const ignoreRegex = /([\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\/:;<=>?\[\]^`{|}~])|\s\s|^\s$/; +const ignoreRegex = /([\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*,\/:;<=>?\[\]^`{|}~])|\s\s|^\s$|^[^+]*\+[^@]*$/; function skipSearch(term, allowEmails) { if (term.indexOf("@") > -1 && !allowEmails) { diff --git a/test/javascripts/lib/user-search-test.js.es6 b/test/javascripts/lib/user-search-test.js.es6 index 28a298c0fb..c93a87564d 100644 --- a/test/javascripts/lib/user-search-test.js.es6 +++ b/test/javascripts/lib/user-search-test.js.es6 @@ -169,6 +169,9 @@ QUnit.test("it skips a search depending on punctuations", async assert => { // 6 + email assert.equal(results.length, 7); + results = await userSearch({ term: "sam+test@sam.com", allowEmails: true }); + assert.equal(results.length, 7); + results = await userSearch({ term: "sam@sam.com" }); assert.equal(results.length, 0);