update code
This commit is contained in:
parent
482f87c38e
commit
485eea1ef1
|
@ -574,19 +574,32 @@ module.exports = function(User) {
|
||||||
err.code = 'EMAIL_NOT_FOUND';
|
err.code = 'EMAIL_NOT_FOUND';
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
|
if (user && user.emailVerified) {
|
||||||
|
user.accessTokens.create({ ttl: ttl }, function(err, accessToken) {
|
||||||
|
if (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
cb();
|
||||||
|
UserModel.emit('resetPasswordRequest', {
|
||||||
|
email: options.email,
|
||||||
|
user: user,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else if (user && !user.emailVerified) {
|
||||||
// create a short lived access token for temp login to change password
|
// create a short lived access token for temp login to change password
|
||||||
// TODO(ritch) - eventually this should only allow password change
|
// TODO(ritch) - eventually this should only allow password change
|
||||||
user.accessTokens.create({ ttl: ttl }, function(err, accessToken) {
|
user.accessTokens.create({ ttl: ttl }, function(err, accessToken) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
cb();
|
cb();
|
||||||
UserModel.emit('resetPasswordRequest', {
|
UserModel.emit('resetPasswordRequest', {
|
||||||
email: options.email,
|
email: options.email,
|
||||||
accessToken: accessToken,
|
accessToken: accessToken,
|
||||||
user: user,
|
user: user,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return cb.promise;
|
return cb.promise;
|
||||||
|
|
|
@ -1764,7 +1764,8 @@ describe('User', function() {
|
||||||
|
|
||||||
describe('password reset without requiring email verification', function() {
|
describe('password reset without requiring email verification', function() {
|
||||||
var email = 'foo1@bar.com';
|
var email = 'foo1@bar.com';
|
||||||
it('disallows temp accessToken creation if email verification is required and done', function(done) {
|
it('disallows temp accessToken creation if email verification is required and done',
|
||||||
|
function(done) {
|
||||||
var calledBack = false;
|
var calledBack = false;
|
||||||
|
|
||||||
User.resetPassword({
|
User.resetPassword({
|
||||||
|
@ -1776,15 +1777,30 @@ describe('User', function() {
|
||||||
User.once('resetPasswordRequest', function(info) {
|
User.once('resetPasswordRequest', function(info) {
|
||||||
assert(info.email);
|
assert(info.email);
|
||||||
assert(!info.accessToken);
|
assert(!info.accessToken);
|
||||||
assert(!info.accessToken.id);
|
assert(calledBack);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
it('creates accessToken if email has not been verified', function(done) {
|
||||||
|
var email = 'foo@bar.com';
|
||||||
|
var calledBack = false;
|
||||||
|
|
||||||
|
User.resetPassword({
|
||||||
|
email: 'foo@bar.com',
|
||||||
|
}, function() {
|
||||||
|
calledBack = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
User.once('resetPasswordRequest', function(info) {
|
||||||
|
assert(info.email);
|
||||||
|
assert(info.accessToken);
|
||||||
|
assert(info.accessToken.id);
|
||||||
assert.equal(info.accessToken.ttl / 60, 15);
|
assert.equal(info.accessToken.ttl / 60, 15);
|
||||||
assert(calledBack);
|
assert(calledBack);
|
||||||
console.log(info);
|
|
||||||
info.accessToken.user(function(err, user) {
|
info.accessToken.user(function(err, user) {
|
||||||
if (err) return done(err);
|
if (err) return done(err);
|
||||||
|
|
||||||
assert.equal(user.email, email);
|
assert.equal(user.email, email);
|
||||||
console.log(user.emailVerified);
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue