PasswordResetController.coffee 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. PasswordResetHandler = require("./PasswordResetHandler")
  2. RateLimiter = require("../../infrastructure/RateLimiter")
  3. module.exports =
  4. renderRequestResetForm: (req, res)->
  5. res.render "user/passwordReset",
  6. title:"Reset Password"
  7. requestReset: (req, res)->
  8. email = req.body.email.trim()
  9. opts =
  10. endpointName:"auto_compile"
  11. timeInterval:60
  12. subjectName:email
  13. throttle: 3
  14. RateLimiter.addCount opts, (err, canCompile)->
  15. if !canCompile
  16. return res.send 500
  17. PasswordResetHandler.generateAndEmailResetToken email, (err)->
  18. if err?
  19. res.send 500, {message:err?.message}
  20. else
  21. res.send 200
  22. renderSetPasswordForm: (req, res)->
  23. res.render "user/setPassword",
  24. title:"Set Password"
  25. passwordResetToken:req.query.passwordResetToken
  26. setNewUserPassword: (req, res)->
  27. {passwordResetToken, password} = req.body
  28. if !password? or password.length == 0 or !passwordResetToken? or passwordResetToken.length == 0
  29. return res.send 500
  30. PasswordResetHandler.setNewUserPassword passwordResetToken?.trim(), password?.trim(), (err)->
  31. if err?
  32. res.send 500
  33. else
  34. res.send 200