fixed up tests from titles we check when rendering, deleted them as they never catch anything important, more hastle than they are worth imo.
40 lines
1.2 KiB
CoffeeScript
40 lines
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 |