UserPagesController.coffee 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. UserLocator = require("./UserLocator")
  2. UserGetter = require("./UserGetter")
  3. ErrorController = require("../Errors/ErrorController")
  4. logger = require("logger-sharelatex")
  5. Settings = require("settings-sharelatex")
  6. fs = require('fs')
  7. module.exports =
  8. registerPage : (req, res)->
  9. sharedProjectData =
  10. project_name:req.query.project_name
  11. user_first_name:req.query.user_first_name
  12. newTemplateData = {}
  13. if req.session.templateData?
  14. newTemplateData.templateName = req.session.templateData.templateName
  15. res.render 'user/register',
  16. title: 'register'
  17. redir: req.query.redir
  18. sharedProjectData: sharedProjectData
  19. newTemplateData: newTemplateData
  20. new_email:req.query.new_email || ""
  21. activateAccountPage: (req, res) ->
  22. # An 'activation' is actually just a password reset on an account that
  23. # was set with a random password originally.
  24. if !req.query?.user_id? or !req.query?.token?
  25. return ErrorController.notFound(req, res)
  26. UserGetter.getUser req.query.user_id, {email: 1, loginCount: 1}, (error, user) ->
  27. return next(error) if error?
  28. if !user
  29. return ErrorController.notFound(req, res)
  30. if user.loginCount > 0
  31. # Already seen this user, so account must be activate
  32. # This lets users keep clicking the 'activate' link in their email
  33. # as a way to log in which, if I know our users, they will.
  34. res.redirect "/login?email=#{encodeURIComponent(user.email)}"
  35. else
  36. res.render 'user/activate',
  37. title: 'activate_account'
  38. email: user.email,
  39. token: req.query.token
  40. loginPage : (req, res)->
  41. res.render 'user/login',
  42. title: 'login',
  43. redir: req.query.redir,
  44. email: req.query.email
  45. settingsPage : (req, res, next)->
  46. logger.log user: req.session.user, "loading settings page"
  47. UserLocator.findById req.session.user._id, (err, user)->
  48. return next(err) if err?
  49. res.render 'user/settings',
  50. title:'account_settings'
  51. user: user,
  52. languages: Settings.languages,
  53. accountSettingsTabActive: true