UserController.coffee 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. UserDeleter = require("./UserDeleter")
  2. UserLocator = require("./UserLocator")
  3. User = require("../../models/User").User
  4. newsLetterManager = require('../Newsletter/NewsletterManager')
  5. sanitize = require('sanitizer')
  6. logger = require("logger-sharelatex")
  7. metrics = require("../../infrastructure/Metrics")
  8. module.exports =
  9. deleteUser: (req, res)->
  10. user_id = req.session.user._id
  11. UserDeleter.deleteUser user_id, (err)->
  12. if !err?
  13. req.session.destroy()
  14. res.send(200)
  15. unsubscribe: (req, res)->
  16. UserLocator.findById req.session.user._id, (err, user)->
  17. newsLetterManager.unsubscribe user, ->
  18. res.send()
  19. updateUserSettings : (req, res)->
  20. logger.log user: req.session.user, "updating account settings"
  21. User.findById req.session.user._id, (err, user)->
  22. if err? or !user?
  23. logger.err err:err, user_id:req.session.user._id, "problem updaing user settings"
  24. return res.send 500
  25. user.first_name = sanitize.escape(req.body.first_name).trim()
  26. user.last_name = sanitize.escape(req.body.last_name).trim()
  27. user.ace.mode = sanitize.escape(req.body.mode).trim()
  28. user.ace.theme = sanitize.escape(req.body.theme).trim()
  29. user.ace.fontSize = sanitize.escape(req.body.fontSize).trim()
  30. user.ace.autoComplete = req.body.autoComplete == "true"
  31. user.ace.spellCheckLanguage = req.body.spellCheckLanguage
  32. user.ace.pdfViewer = req.body.pdfViewer
  33. user.save ->
  34. res.send()
  35. logout : (req, res)->
  36. metrics.inc "user.logout"
  37. logger.log user: req?.session?.user, "logging out"
  38. req.session.destroy (err)->
  39. if err
  40. logger.err err: err, 'error destorying session'
  41. res.redirect '/login'