Merged first and second waterfall steps into one, added var secrets = require('../config/secrets');, and mongoose query now returns a user object instead of an array

This commit is contained in:
Sahat Yalkabov
2014-02-18 03:29:25 -05:00
parent 4d434aef3c
commit d24045ec49

View File

@ -14,7 +14,7 @@ exports.getReset = function(req, res) {
} }
User User
.where('resetPasswordToken', req.params.token) .findOne({ resetPasswordToken: req.params.token })
.where('resetPasswordExpires').gt(Date.now()) .where('resetPasswordExpires').gt(Date.now())
.exec(function(err, user) { .exec(function(err, user) {
if (!user) { if (!user) {
@ -46,27 +46,25 @@ exports.postReset = function(req, res, next) {
async.waterfall([ async.waterfall([
function(done) { function(done) {
User User
.where('resetPasswordToken', req.params.token) .findOne({ resetPasswordToken: req.params.token })
.where('resetPasswordExpires').gt(Date.now()) .where('resetPasswordExpires').gt(Date.now())
.exec(function(err, user) { .exec(function(err, user) {
if (!user) { if (!user) {
req.flash('errors', { msg: 'Password reset request is invalid. It may have expired.' }); req.flash('errors', { msg: 'Password reset token is invalid or has expired.' });
return res.redirect('back'); return res.redirect('back');
} }
done(err, user);
});
},
function(user, done) {
user.password = req.body.password;
user.resetPasswordToken = undefined;
user.resetPasswordExpires = undefined;
user.save(function(err) { user.password = req.body.password;
if (err) return next(err); user.resetPasswordToken = undefined;
req.logIn(user, function(err) { user.resetPasswordExpires = undefined;
done(err, user);
user.save(function(err) {
if (err) return next(err);
req.logIn(user, function(err) {
done(err, user);
});
});
}); });
});
}, },
function(user, done) { function(user, done) {
var smtpTransport = nodemailer.createTransport('SMTP', { var smtpTransport = nodemailer.createTransport('SMTP', {