From 9419d3a0e5779d1b6609b2344b99f48d72d2fdfe Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 16 May 2014 11:04:48 +0100 Subject: [PATCH] hooked up the frount end ui to show the email can not be found, added client side valdidation on password, removed server side min length check. Just check that it is not 0 len --- .../PasswordResetController.coffee | 4 +-- .../PasswordReset/PasswordResetHandler.coffee | 2 +- services/web/public/coffee/forms.coffee | 35 ++++++++++++------- .../PasswordResetHandlerTests.coffee | 2 +- 4 files changed, 26 insertions(+), 17 deletions(-) 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()