TeamInvitesController.coffee 2.0 KB

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