overleaf/services/web/app/coffee/Features/Subscription/SubscriptionDomainHandler.coffee

57 lines
1.6 KiB
CoffeeScript
Raw Normal View History

2015-01-27 13:09:56 -05:00
async = require("async")
_ = require("underscore")
2015-01-27 13:09:56 -05:00
settings = require("settings-sharelatex")
SubscriptionGroupHandler = require("./SubscriptionGroupHandler")
_s = require("underscore.string")
2015-01-27 13:09:56 -05:00
module.exports = SubscriptionDomainHandler =
2015-01-27 13:09:56 -05:00
getLicenceUserCanJoin: (user, callback)->
licence = SubscriptionDomainHandler._findDomainLicence(user.email)
if licence?
callback null, licence
else
callback()
attemptToJoinGroup: (user, callback)->
licence = SubscriptionDomainHandler._findDomainLicence(user.email)
if licence? and user.emailVerified
SubscriptionGroupHandler.addUserToGroup licence.adminUser_id, user.email, callback
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
2015-01-27 13:09:56 -05:00
autoAllocate: (user, callback = ->)->
licence = SubscriptionDomainHandler._findDomainLicence(user.email)
#
2015-01-27 13:09:56 -05:00
if licence?
SubscriptionGroupHandler.addUserToGroup licence.adminUser_id, user.email, callback
else
callback()
_findDomainLicence: (email)->
licence = _.find settings.domainLicences, (licence)->
_.find licence.domains, (domain)->
_s.endsWith email, domain
2015-01-27 13:09:56 -05:00
return licence
findDomainLicenceBySubscriptionId: (subscription_id)->
licence = _.find settings.domainLicences, (licence)->
licence?.subscription_id == subscription_id
return licence
2015-01-27 13:09:56 -05:00