TeamInvitesController.coffee 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. EmailHelper = require("../Helpers/EmailHelper")
  8. module.exports =
  9. createInvite: (req, res, next) ->
  10. teamManagerId = AuthenticationController.getLoggedInUserId(req)
  11. email = EmailHelper.parseEmail(req.body.email)
  12. if !email?
  13. return res.sendStatus(400)
  14. TeamInvitesHandler.createInvite teamManagerId, email, (err, invite) ->
  15. return next(err) if err?
  16. inviteView = { user:
  17. { email: invite.email, sentAt: invite.sentAt, invite: true }
  18. }
  19. res.json inviteView
  20. viewInvite: (req, res, next) ->
  21. token = req.params.token
  22. userId = AuthenticationController.getLoggedInUserId(req)
  23. TeamInvitesHandler.getInvite token, (err, invite, teamSubscription) ->
  24. return next(err) if err?
  25. if !invite
  26. return ErrorController.notFound(req, res, next)
  27. SubscriptionLocator.getUsersSubscription userId, (err, personalSubscription) ->
  28. return next(err) if err?
  29. res.render "subscriptions/team/invite",
  30. inviterName: invite.inviterName
  31. inviteToken: invite.token
  32. hasPersonalSubscription: personalSubscription?
  33. appName: settings.appName
  34. acceptInvite: (req, res, next) ->
  35. token = req.params.token
  36. userId = AuthenticationController.getLoggedInUserId(req)
  37. TeamInvitesHandler.acceptInvite token, userId, (err, results) ->
  38. return next(err) if err?
  39. res.sendStatus 204
  40. revokeInvite: (req, res) ->
  41. email = EmailHelper.parseEmail(req.params.email)
  42. teamManagerId = AuthenticationController.getLoggedInUserId(req)
  43. if !email?
  44. return res.sendStatus(400)
  45. TeamInvitesHandler.revokeInvite teamManagerId, email, (err, results) ->
  46. return next(err) if err?
  47. res.sendStatus 204