DomainLicenceController.coffee 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. TeamInvitesHandler = require('./TeamInvitesHandler')
  8. async = require("async")
  9. module.exports =
  10. join: (req, res)->
  11. user = AuthenticationController.getSessionUser(req)
  12. licence = SubscriptionDomainHandler.getLicenceUserCanJoin(user)
  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/domain/join",
  26. title: "Group Invitation"
  27. group_subscription_id: licence.group_subscription_id
  28. licenceName: licence.name
  29. has_personal_subscription: subscription?
  30. createInvite: (req, res, next)->
  31. user = AuthenticationController.getSessionUser(req)
  32. licence = SubscriptionDomainHandler.getLicenceUserCanJoin(user)
  33. if !licence?
  34. return ErrorsController.notFound(req, res)
  35. TeamInvitesHandler.createDomainInvite user, licence, (err) ->
  36. if err?
  37. next(err)
  38. else
  39. res.sendStatus 200