BetaProgramController.coffee 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. BetaProgramHandler = require './BetaProgramHandler'
  2. UserLocator = require "../User/UserLocator"
  3. Settings = require "settings-sharelatex"
  4. logger = require 'logger-sharelatex'
  5. module.exports = BetaProgramController =
  6. optIn: (req, res, next) ->
  7. user_id = req?.session?.user?._id
  8. logger.log {user_id}, "user opting in to beta program"
  9. if !user_id
  10. return next(new Error("no user id in session"))
  11. BetaProgramHandler.optIn user_id, (err) ->
  12. if err
  13. return next(err)
  14. return res.redirect "/beta/participate"
  15. optOut: (req, res, next) ->
  16. user_id = req?.session?.user?._id
  17. logger.log {user_id}, "user opting out of beta program"
  18. if !user_id
  19. return next(new Error("no user id in session"))
  20. BetaProgramHandler.optOut user_id, (err) ->
  21. if err
  22. return next(err)
  23. return res.redirect "/beta/participate"
  24. optInPage: (req, res, next)->
  25. user_id = req.session?.user?._id
  26. logger.log {user_id}, "showing beta participation page for user"
  27. UserLocator.findById user_id, (err, user)->
  28. if err
  29. logger.err {err, user_id}, "error fetching user"
  30. return next(err)
  31. res.render 'beta_program/opt_in',
  32. title:'sharelatex_beta_program'
  33. user: user,
  34. languages: Settings.languages,