Show front widget for paid and sampled free users

This commit is contained in:
James Allen
2018-04-30 17:13:57 +01:00
parent 5a580b6ef9
commit 6399621d1f
3 changed files with 40 additions and 4 deletions
@@ -157,7 +157,7 @@ module.exports = ProjectController =
hasSubscription: (cb)->
LimitationsManager.userHasSubscriptionOrIsGroupMember currentUser, cb
user: (cb) ->
User.findById user_id, "featureSwitches overleaf awareOfV2", cb
User.findById user_id, "featureSwitches overleaf awareOfV2 features", cb
}, (err, results)->
if err?
logger.err err:err, "error getting data for project list page"
@@ -172,6 +172,7 @@ module.exports = ProjectController =
user = results.user
warnings = ProjectController._buildWarningsList results.v1Projects
ProjectController._injectProjectOwners projects, (error, projects) ->
return next(error) if error?
viewModel = {
@@ -193,6 +194,14 @@ module.exports = ProjectController =
else
viewModel.showUserDetailsArea = false
paidUser = user.features?.github # use a heuristic for paid account
freeUserProportion = 0.85
sampleFreeUser = parseInt(user._id.toString().slice(-2), 16) < freeUserProportion * 255
showFrontWidget = paidUser or sampleFreeUser
logger.log {paidUser, sampleFreeUser, showFrontWidget}, 'deciding whether to show front widget'
if showFrontWidget
viewModel.frontChatWidgetRoomId = Settings.overleaf?.front_chat_widget_room_id
res.render 'project/list', viewModel
timer.done()