Просмотр исходного кода

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

Henry Oswald 12 лет назад
Родитель
Сommit
9419d3a0e5

+ 2 - 2
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?

+ 1 - 1
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 =

+ 22 - 13
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)->

+ 1 - 1
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()