overleaf/services/web/app/coffee/Features/PasswordReset/PasswordResetHandler.coffee

28 lines
1 KiB
CoffeeScript
Raw Normal View History

2014-05-15 11:20:23 -04:00
settings = require("settings-sharelatex")
async = require("async")
UserGetter = require("../User/UserGetter")
TokenGenerator = require("./TokenGenerator")
EmailHandler = require("../Email/EmailHandler")
AuthenticationManager = require("../Authentication/AuthenticationManager")
module.exports =
generateAndEmailResetToken:(user_id, callback)->
async.series
user: (cb)-> UserGetter.getUser _id:user_id, cb
token: (cb)-> TokenGenerator.getNewToken user_id, cb
, (err, results)->
if err then return callback(err)
if !results.user?
return callback("no user found")
emailOptions =
to : results.user.email
setNewPasswordUrl : "#{settings.siteUrl}/user/password/set?resetToken=#{results.token}"
EmailHandler.sendEmail "passwordResetRequested", emailOptions, callback
setNewUserPassowrd: (token, password, callback)->
TokenGenerator.getUserIdFromToken token, (err, user_id)->
if err then return callback(err)
if !user_id?
return callback("no user found")
AuthenticationManager.setUserPassword user_id, password, callback