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

60 lines
1.8 KiB
CoffeeScript
Raw Normal View History

NotificationsBuilder = require("../Notifications/NotificationsBuilder")
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)->
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
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)->
2016-02-03 11:07:44 -05:00
regex = "[@\.]#{domain}"
return email.match(regex)
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