DomainSubscriptionController.coffee 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. SubscriptionGroupHandler = require("./SubscriptionGroupHandler")
  2. logger = require("logger-sharelatex")
  3. SubscriptionLocator = require("./SubscriptionLocator")
  4. ErrorsController = require("../Errors/ErrorController")
  5. SubscriptionDomainHandler = require("./SubscriptionDomainHandler")
  6. AuthenticationController = require('../Authentication/AuthenticationController')
  7. async = require("async")
  8. module.exports =
  9. newInvite: (req, res)->
  10. group_subscription_id = req.params.subscription_id
  11. user_id = AuthenticationController.getLoggedInUserId(req)
  12. licence = SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(group_subscription_id)
  13. if !licence?
  14. return ErrorsController.notFound(req, res)
  15. jobs =
  16. partOfGroup: (cb)->
  17. SubscriptionGroupHandler.isUserPartOfGroup user_id, licence.group_subscription_id, cb
  18. subscription: (cb)->
  19. SubscriptionLocator.getUsersSubscription user_id, cb
  20. async.series jobs, (err, results)->
  21. {partOfGroup, subscription} = results
  22. if partOfGroup
  23. return res.redirect("/user/subscription/custom_account")
  24. else
  25. res.render "subscriptions/group/join",
  26. title: "Group Invitation"
  27. group_subscription_id:group_subscription_id
  28. licenceName:licence.name
  29. has_personal_subscription: subscription?
  30. createInvite: (req, res)->
  31. subscription_id = req.params.subscription_id
  32. currentUser = AuthenticationController.getSessionUser(req)
  33. if !currentUser?
  34. logger.err {subscription_id}, "error getting current user"
  35. return res.sendStatus 500
  36. licence = SubscriptionDomainHandler.findDomainLicenceBySubscriptionId(subscription_id)
  37. if !licence?
  38. return ErrorsController.notFound(req, res)
  39. SubscriptionGroupHandler.sendVerificationEmail subscription_id, licence.name, currentUser.email, (err)->
  40. if err?
  41. res.sendStatus 500
  42. else
  43. res.sendStatus 200