UserPagesController.coffee 2.2 KB

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