From e4da74825768bf20ae23f9de85453c8ac10d1551 Mon Sep 17 00:00:00 2001 From: Tim Alby Date: Wed, 6 Jun 2018 14:52:09 +0200 Subject: [PATCH] add filter to query on emails attribute --- services/web/app/coffee/Features/User/UserGetter.coffee | 3 ++- services/web/test/unit/coffee/User/UserGetterTests.coffee | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/services/web/app/coffee/Features/User/UserGetter.coffee b/services/web/app/coffee/Features/User/UserGetter.coffee index 10a975613e..3160258b24 100644 --- a/services/web/app/coffee/Features/User/UserGetter.coffee +++ b/services/web/app/coffee/Features/User/UserGetter.coffee @@ -37,7 +37,8 @@ module.exports = UserGetter = if arguments.length == 2 callback = projection projection = {} - db.users.findOne 'emails.email': email, projection, (error, user) => + query = emails: { $exists: true }, 'emails.email': email + db.users.findOne query, projection, (error, user) => return callback(error, user) if error? or user? # While multiple emails are being rolled out, check for the main email as diff --git a/services/web/test/unit/coffee/User/UserGetterTests.coffee b/services/web/test/unit/coffee/User/UserGetterTests.coffee index cdc22772f3..b25bab87a7 100644 --- a/services/web/test/unit/coffee/User/UserGetterTests.coffee +++ b/services/web/test/unit/coffee/User/UserGetterTests.coffee @@ -60,9 +60,12 @@ describe "UserGetter", -> describe "getUserByAnyEmail", -> it "query user for any email", (done)-> email = 'hello@world.com' + expectedQuery = + emails: { $exists: true } + 'emails.email': email projection = emails: 1 @UserGetter.getUserByAnyEmail " #{email} ", projection, (error, user) => - @findOne.calledWith('emails.email': email, projection).should.equal true + @findOne.calledWith(expectedQuery, projection).should.equal true user.should.deep.equal @fakeUser done()