SubscriptionDomainHandler.coffee 1.8 KB

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