diff --git a/services/web/app/coffee/Features/PasswordReset/PasswordResetController.coffee b/services/web/app/coffee/Features/PasswordReset/PasswordResetController.coffee index fab67bdb16..3acf680952 100644 --- a/services/web/app/coffee/Features/PasswordReset/PasswordResetController.coffee +++ b/services/web/app/coffee/Features/PasswordReset/PasswordResetController.coffee @@ -20,7 +20,7 @@ module.exports = return res.send 500 PasswordResetHandler.generateAndEmailResetToken email, (err)-> if err? - res.send 500 + res.send 500, {message:err?.message} else res.send 200 @@ -31,7 +31,7 @@ module.exports = setNewUserPassword: (req, res)-> {passwordResetToken, password} = req.body - if !password? or password.length < 4 or !passwordResetToken? or passwordResetToken.length == 0 + if !password? or password.length == 0 or !passwordResetToken? or passwordResetToken.length == 0 return res.send 500 PasswordResetHandler.setNewUserPassword passwordResetToken?.trim(), password?.trim(), (err)-> if err? diff --git a/services/web/app/coffee/Features/PasswordReset/PasswordResetHandler.coffee b/services/web/app/coffee/Features/PasswordReset/PasswordResetHandler.coffee index d53a95be16..62dcc70a8c 100644 --- a/services/web/app/coffee/Features/PasswordReset/PasswordResetHandler.coffee +++ b/services/web/app/coffee/Features/PasswordReset/PasswordResetHandler.coffee @@ -13,7 +13,7 @@ module.exports = if err then return callback(err) if !user? logger.err email:email, "user could not be found for password reset" - return callback("no user found") + return callback(message:"Can't find that email, sorry.") PasswordResetTokenHandler.getNewToken user._id, (err, token)-> if err then return callback(err) emailOptions = diff --git a/services/web/public/coffee/forms.coffee b/services/web/public/coffee/forms.coffee index 6852048745..0f33de879b 100644 --- a/services/web/public/coffee/forms.coffee +++ b/services/web/public/coffee/forms.coffee @@ -37,6 +37,7 @@ require [ window.location = data.redir || "/project" + $('#registerFormShort').validate shortRegisterFormRules $("#registerFormShort").show() @@ -99,20 +100,28 @@ require [ success: (data)-> new Message text:"You have been sent an email to complete your password reset." error:(data)-> - new Message type:"error", text:"something went wrong processing your request." - - $('form#setPasswordReset').submit (event)-> - event.preventDefault() - formData = $(this).serialize() - $.ajax - url: "/user/password/set" - type:'POST' - data: formData - success: (data)-> - new Message text:"Your password has been reset" - error:(data)-> - new Message type:"error", text:"something went wrong processing your request." + message = JSON.parse(data?.responseText)?.message + new Message type:"error", text: message || "Something went wrong processing your request." + + $('form#setPasswordReset').validate + rules: + password: + required: true + messages: + password: "Password is required" + errorElement: 'div' + submitHandler: (form)-> + event.preventDefault() + formData = $(form).serialize() + $.ajax + url: "/user/password/set" + type:'POST' + data: formData + success: (data)-> + new Message text:"Your password has been reset" + error:(data)-> + new Message type:"error", text:"Something went wrong processing your request." $('a#deleteUserAccount').click (e)-> diff --git a/services/web/test/UnitTests/coffee/PasswordReset/PasswordResetHandlerTests.coffee b/services/web/test/UnitTests/coffee/PasswordReset/PasswordResetHandlerTests.coffee index d51eff543a..99ffe69dce 100644 --- a/services/web/test/UnitTests/coffee/PasswordReset/PasswordResetHandlerTests.coffee +++ b/services/web/test/UnitTests/coffee/PasswordReset/PasswordResetHandlerTests.coffee @@ -43,7 +43,7 @@ describe "PasswordResetHandler", -> @UserGetter.getUser.callsArgWith(1) @PasswordResetTokenHandler.getNewToken.callsArgWith(1) @PasswordResetHandler.generateAndEmailResetToken @user.email, (err)=> - err.should.exists + should.exist(err) done()