BetaProgramController.coffee 1.3 KB

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