TeamInvitesController.coffee 1.6 KB

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