SubscriptionDomainHandler.coffee 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. async = require("async")
  2. _ = require("underscore")
  3. settings = require("settings-sharelatex")
  4. SubscriptionGroupHandler = require("./SubscriptionGroupHandler")
  5. _s = require("underscore.string")
  6. module.exports = SubscriptionDomainHandler =
  7. getLicenceUserCanJoin: (user, callback)->
  8. licence = SubscriptionDomainHandler._findDomainLicence(user.email)
  9. if licence?
  10. callback null, licence
  11. else
  12. callback()
  13. attemptToJoinGroup: (user, callback)->
  14. licence = SubscriptionDomainHandler._findDomainLicence(user.email)
  15. if licence? and user.emailVerified
  16. SubscriptionGroupHandler.addUserToGroup licence.adminUser_id, user.email, callback
  17. else
  18. callback "user not verified"
  19. rejectInvitationToGroup: (user, subscription, callback)->
  20. removeUserFromGroup(subscription.admin_id, user._id, callback)
  21. getDomainLicencePage: (user)->
  22. licence = SubscriptionDomainHandler._findDomainLicence(user.email)
  23. if licence?.verifyEmail
  24. return "/user/subscription/#{licence.subscription_id}/group/invited"
  25. else
  26. return undefined
  27. autoAllocate: (user, callback = ->)->
  28. licence = SubscriptionDomainHandler._findDomainLicence(user.email)
  29. #
  30. if licence?
  31. SubscriptionGroupHandler.addUserToGroup licence.adminUser_id, user.email, callback
  32. else
  33. callback()
  34. _findDomainLicence: (email)->
  35. licence = _.find settings.domainLicences, (licence)->
  36. _.find licence.domains, (domain)->
  37. _s.endsWith email, domain
  38. return licence
  39. findDomainLicenceBySubscriptionId: (subscription_id)->
  40. licence = _.find settings.domainLicences, (licence)->
  41. licence?.subscription_id == subscription_id
  42. return licence