diff --git a/app/assets/javascripts/discourse/components/user-selector.js.es6 b/app/assets/javascripts/discourse/components/user-selector.js.es6 index a25b3f65e9..1ad76ba6ab 100644 --- a/app/assets/javascripts/discourse/components/user-selector.js.es6 +++ b/app/assets/javascripts/discourse/components/user-selector.js.es6 @@ -34,7 +34,7 @@ export default TextField.extend({ single = bool("single"), allowAny = bool("allowAny"), disabled = bool("disabled"), - disallowEmails = bool("disallowEmails"), + allowEmails = bool("allowEmails"), fullWidthWrap = bool("fullWidthWrap"); function excludedUsernames() { @@ -67,7 +67,7 @@ export default TextField.extend({ includeMentionableGroups, includeMessageableGroups, group: self.get("group"), - disallowEmails + allowEmails }); return results; }, diff --git a/app/assets/javascripts/discourse/lib/user-search.js.es6 b/app/assets/javascripts/discourse/lib/user-search.js.es6 index c64ec385de..43359845e7 100644 --- a/app/assets/javascripts/discourse/lib/user-search.js.es6 +++ b/app/assets/javascripts/discourse/lib/user-search.js.es6 @@ -85,7 +85,7 @@ function organizeResults(r, options) { }); } - if (!options.disallowEmails && emailValid(options.term)) { + if (options.allowEmails && emailValid(options.term)) { let e = { username: options.term }; emails = [e]; results.push(e); @@ -118,9 +118,13 @@ 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) { + return true; + } -function skipSearch(term) { return !!term.match(ignoreRegex); } @@ -155,7 +159,7 @@ export default function userSearch(options) { resolve(CANCELLED_STATUS); }, 5000); - if (skipSearch(term)) { + if (skipSearch(term, options.allowEmails)) { resolve([]); return; } diff --git a/app/assets/javascripts/discourse/templates/components/composer-user-selector.hbs b/app/assets/javascripts/discourse/templates/components/composer-user-selector.hbs index 7ee33ef939..9a9b1cfcf8 100644 --- a/app/assets/javascripts/discourse/templates/components/composer-user-selector.hbs +++ b/app/assets/javascripts/discourse/templates/components/composer-user-selector.hbs @@ -7,6 +7,7 @@ tabindex="1" usernames=usernames hasGroups=hasGroups + allowEmails='true' autocomplete="discourse"}} {{else}}