| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- NotificationsBuilder = require("../Notifications/NotificationsBuilder")
- async = require("async")
- _ = require("underscore")
- settings = require("settings-sharelatex")
- SubscriptionGroupHandler = require("./SubscriptionGroupHandler")
- module.exports = SubscriptionDomainHandler =
- getLicenceUserCanJoin: (user)->
- licence = SubscriptionDomainHandler._findDomainLicence(user.email)
- return licence
- attemptToJoinGroup: (user, callback)->
- licence = SubscriptionDomainHandler._findDomainLicence(user.email)
- if licence? and user.emailVerified
- SubscriptionGroupHandler.addUserToGroup licence.adminUser_id, user.email, (err)->
- if err?
- logger.err err:err, "error adding user to group"
- return callback(err)
- NotificationsBuilder.groupPlan(user, licence).read()
- else
- callback "user not verified"
- rejectInvitationToGroup: (user, subscription, callback)->
- removeUserFromGroup(subscription.admin_id, user._id, callback)
- getDomainLicencePage: (user)->
- licence = SubscriptionDomainHandler._findDomainLicence(user.email)
- if licence?.verifyEmail
- return "/user/subscription/#{licence.subscription_id}/group/invited"
- else
- return undefined
- autoAllocate: (user, callback = ->)->
- licence = SubscriptionDomainHandler._findDomainLicence(user.email)
- if licence?
- SubscriptionGroupHandler.addUserToGroup licence.adminUser_id, user.email, callback
- else
- callback()
- _findDomainLicence: (email)->
- licence = _.find settings.domainLicences, (licence)->
- _.find licence.domains, (domain)->
- regex = "[@\.]#{domain}"
- return email.match(regex)
- return licence
- findDomainLicenceBySubscriptionId: (subscription_id)->
- licence = _.find settings.domainLicences, (licence)->
- licence?.subscription_id == subscription_id
- return licence
|