overleaf/services/web/app/coffee/Features/PasswordReset/PasswordResetController.coffee
Henry Oswald d047d44079 Changed the error messages which are sent down to the client to be translated first
fixed up tests from titles we check when rendering, deleted them as they never
catch anything important, more hastle than they are worth imo.
2014-08-01 14:03:38 +01:00

40 lines
No EOL
1.2 KiB
CoffeeScript

PasswordResetHandler = require("./PasswordResetHandler")
RateLimiter = require("../../infrastructure/RateLimiter")
module.exports =
renderRequestResetForm: (req, res)->
res.render "user/passwordReset",
title:"reset_password"
requestReset: (req, res)->
email = req.body.email.trim().toLowerCase()
opts =
endpointName: "password_reset_rate_limit"
timeInterval: 60
subjectName: req.ip
throttle: 6
RateLimiter.addCount opts, (err, canCompile)->
if !canCompile
return res.send 500, { message: req.i18n.translate("rate_limit_hit_wait")}
PasswordResetHandler.generateAndEmailResetToken email, (err)->
if err?
res.send 500, {message:err?.message}
else
res.send 200
renderSetPasswordForm: (req, res)->
res.render "user/setPassword",
title:"set_password"
passwordResetToken:req.query.passwordResetToken
setNewUserPassword: (req, res)->
{passwordResetToken, password} = req.body
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?
res.send 500
else
res.send 200