[IMPROVE] Forgot password endpoint return status to return as success regardless if email was found or not (#19842)

pull/19583/head^2
Gabriel Thomé 5 years ago committed by GitHub
parent 725fb98cbe
commit bf88a0e013
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      app/api/server/v1/users.js
  2. 10
      server/methods/sendForgotPasswordEmail.js
  3. 4
      tests/end-to-end/api/01-users.js

@ -614,11 +614,8 @@ API.v1.addRoute('users.forgotPassword', { authRequired: false }, {
return API.v1.failure('The \'email\' param is required');
}
const emailSent = Meteor.call('sendForgotPasswordEmail', email);
if (emailSent) {
return API.v1.success();
}
return API.v1.failure('User not found');
Meteor.call('sendForgotPasswordEmail', email);
return API.v1.success();
},
});

@ -14,7 +14,7 @@ Meteor.methods({
const user = Users.findOneByEmailAddress(email, { fields: { _id: 1 } });
if (!user) {
return false;
return true;
}
if (user.services && !user.services.password) {
@ -24,12 +24,10 @@ Meteor.methods({
}
try {
return !!Accounts.sendResetPasswordEmail(user._id, email);
Accounts.sendResetPasswordEmail(user._id, email);
return true;
} catch (error) {
throw new Meteor.Error('error-email-send-failed', `Error trying to send email: ${ error.message }`, {
method: 'registerUser',
message: error.message,
});
console.error(error);
}
},
});

@ -1261,9 +1261,9 @@ describe('[Users]', function() {
email: 'invalidEmail',
})
.expect('Content-Type', 'application/json')
.expect(400)
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('success', true);
})
.end(done);
});

Loading…
Cancel
Save