From af1d2201b090d82b66aa73c23973669ef9c60892 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Tue, 21 Oct 2014 14:18:45 -0700 Subject: [PATCH] Work with case-sensitive email addresses Closes #4235 --- core/server/api/authentication.js | 6 ++---- core/server/models/user.js | 6 +++++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/server/api/authentication.js b/core/server/api/authentication.js index d37a004d63..2b54ce0382 100644 --- a/core/server/api/authentication.js +++ b/core/server/api/authentication.js @@ -4,7 +4,6 @@ var _ = require('lodash'), mail = require('./mail'), globalUtils = require('../utils'), utils = require('./utils'), - users = require('./users'), Promise = require('bluebird'), errors = require('../errors'), config = require('../config'), @@ -42,9 +41,8 @@ authentication = { return Promise.reject(new errors.BadRequestError('No email provided.')); } - return users.read({context: {internal: true}, email: email, status: 'active'}).then(function () { - return settings.read({context: {internal: true}, key: 'dbHash'}); - }).then(function (response) { + return settings.read({context: {internal: true}, key: 'dbHash'}) + .then(function (response) { var dbHash = response.settings[0].value; return dataProvider.User.generateResetToken(email, expires, dbHash); }).then(function (resetToken) { diff --git a/core/server/models/user.js b/core/server/models/user.js index aeed9437d1..8ede86600c 100644 --- a/core/server/models/user.js +++ b/core/server/models/user.js @@ -781,10 +781,14 @@ User = ghostBookshelf.Model.extend({ }).then(function (email) { // Fetch the user by email, and hash the password at the same time. return Promise.join( - self.forge({email: email.toLocaleLowerCase()}).fetch({require: true}), + self.getByEmail(email), generatePasswordHash(newPassword) ); }).then(function (results) { + if (!results[0]) { + return Promise.reject(new Error('User not found')); + } + // Update the user with the new password hash var foundUser = results[0], passwordHash = results[1];