| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- AuthenticationController = require('../Authentication/AuthenticationController')
- UserGetter = require("./UserGetter")
- UserUpdater = require("./UserUpdater")
- EmailHelper = require("../Helpers/EmailHelper")
- UserEmailsConfirmationHandler = require "./UserEmailsConfirmationHandler"
- logger = require("logger-sharelatex")
- Errors = require "../Errors/Errors"
- module.exports = UserEmailsController =
- list: (req, res, next) ->
- userId = AuthenticationController.getLoggedInUserId(req)
- UserGetter.getUserFullEmails userId, (error, fullEmails) ->
- return next(error) if error?
- res.json fullEmails
- add: (req, res, next) ->
- userId = AuthenticationController.getLoggedInUserId(req)
- email = EmailHelper.parseEmail(req.body.email)
- return res.sendStatus 422 unless email?
- UserUpdater.addEmailAddress userId, email, (error)->
- return next(error) if error?
- UserEmailsConfirmationHandler.sendConfirmationEmail userId, email, (err) ->
- return next(error) if error?
- res.sendStatus 204
- remove: (req, res, next) ->
- userId = AuthenticationController.getLoggedInUserId(req)
- email = EmailHelper.parseEmail(req.body.email)
- return res.sendStatus 422 unless email?
- UserUpdater.removeEmailAddress userId, email, (error)->
- return next(error) if error?
- res.sendStatus 200
- setDefault: (req, res, next) ->
- userId = AuthenticationController.getLoggedInUserId(req)
- email = EmailHelper.parseEmail(req.body.email)
- return res.sendStatus 422 unless email?
- UserUpdater.setDefaultEmailAddress userId, email, (error)->
- return next(error) if error?
- res.sendStatus 200
- showConfirm: (req, res, next) ->
- res.render 'user/confirm_email', {
- token: req.query.token,
- title: 'confirm_email'
- }
- confirm: (req, res, next) ->
- token = req.body.token
- if !token?
- return res.sendStatus 422
- UserEmailsConfirmationHandler.confirmEmailFromToken token, (error) ->
- if error?
- if error instanceof Errors.NotFoundError
- res.status(404).json({
- message: 'Sorry, your confirmation token is invalid or has expired. Please request a new email confirmation link.'
- })
- else
- next(error)
- else
- res.sendStatus 200
|