TeamInvitesController.coffee 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. settings = require "settings-sharelatex"
  2. logger = require("logger-sharelatex")
  3. TeamInvitesHandler = require('./TeamInvitesHandler')
  4. AuthenticationController = require("../Authentication/AuthenticationController")
  5. SubscriptionLocator = require("./SubscriptionLocator")
  6. ErrorController = require("../Errors/ErrorController")
  7. module.exports =
  8. createInvite: (req, res, next) ->
  9. teamManagerId = AuthenticationController.getLoggedInUserId(req)
  10. email = req.body.email
  11. TeamInvitesHandler.createManagerInvite teamManagerId, email, (err, invite) ->
  12. return handleError(err, req, res, next) if err?
  13. inviteView = { user:
  14. { email: invite.email, sentAt: invite.sentAt, holdingAccount: true }
  15. }
  16. res.json inviteView
  17. viewInvite: (req, res, next) ->
  18. token = req.params.token
  19. userId = AuthenticationController.getLoggedInUserId(req)
  20. TeamInvitesHandler.getInvite token, (err, invite, teamSubscription) ->
  21. return handleError(err, req, res, next) if err?
  22. if !invite
  23. return ErrorController.notFound(req, res, next)
  24. SubscriptionLocator.getUsersSubscription userId, (err, personalSubscription) ->
  25. return handleError(err, req, res, next) if err?
  26. res.render "subscriptions/team/invite",
  27. inviterName: invite.inviterName
  28. inviteToken: invite.token
  29. hasPersonalSubscription: personalSubscription?
  30. appName: settings.appName
  31. acceptInvite: (req, res, next) ->
  32. token = req.params.token
  33. userId = AuthenticationController.getLoggedInUserId(req)
  34. TeamInvitesHandler.acceptInvite token, userId, (err, results) ->
  35. return handleError(err, req, res, next) if err?
  36. res.sendStatus 204
  37. revokeInvite: (req, res) ->
  38. email = req.params.email
  39. teamManagerId = AuthenticationController.getLoggedInUserId(req)
  40. TeamInvitesHandler.revokeInvite teamManagerId, email, (err, results) ->
  41. return handleError(err, req, res, next) if err?
  42. res.sendStatus 204
  43. handleError = (err, req, res, next) ->
  44. if err.teamNotFound or err.inviteNoLongerValid
  45. ErrorController.notFound(req, res, next)
  46. else
  47. next(err)