|
@@ -294,6 +294,23 @@ module.exports = ProjectController =
|
|
|
else
|
|
else
|
|
|
logger.log { user_id, event }, "autocompile onboarding not shown yet to this user"
|
|
logger.log { user_id, event }, "autocompile onboarding not shown yet to this user"
|
|
|
return cb(null, { enabled: true, showOnboarding: true })
|
|
return cb(null, { enabled: true, showOnboarding: true })
|
|
|
|
|
+ couldShowLinkSharingOnboarding: (cb) ->
|
|
|
|
|
+ cb = underscore.once(cb)
|
|
|
|
|
+ if !user_id?
|
|
|
|
|
+ return cb()
|
|
|
|
|
+ # Extract data from user's ObjectId
|
|
|
|
|
+ timestamp = parseInt(user_id.toString().substring(0, 8), 16)
|
|
|
|
|
+ userSignupDate = new Date(timestamp * 1000)
|
|
|
|
|
+ if userSignupDate > new Date("2017-11-10")
|
|
|
|
|
+ # Don't show for users who registered after it was released
|
|
|
|
|
+ return cb(null, false)
|
|
|
|
|
+ timeout = setTimeout cb, 500
|
|
|
|
|
+ AnalyticsManager.getLastOccurance user_id, "shown-linksharing-onboarding", (error, event) ->
|
|
|
|
|
+ clearTimeout timeout
|
|
|
|
|
+ if error? || event?
|
|
|
|
|
+ return cb(null, false)
|
|
|
|
|
+ else
|
|
|
|
|
+ return cb(null, true)
|
|
|
}, (err, results)->
|
|
}, (err, results)->
|
|
|
if err?
|
|
if err?
|
|
|
logger.err err:err, "error getting details for project page"
|
|
logger.err err:err, "error getting details for project page"
|
|
@@ -308,11 +325,13 @@ module.exports = ProjectController =
|
|
|
|
|
|
|
|
token = TokenAccessHandler.getRequestToken(req, project_id)
|
|
token = TokenAccessHandler.getRequestToken(req, project_id)
|
|
|
isTokenMember = results.isTokenMember
|
|
isTokenMember = results.isTokenMember
|
|
|
|
|
+ # Roll out token-access based on Project owner
|
|
|
enableTokenAccessUI = ProjectController._isInPercentageRollout(
|
|
enableTokenAccessUI = ProjectController._isInPercentageRollout(
|
|
|
'linksharing',
|
|
'linksharing',
|
|
|
project.owner_ref,
|
|
project.owner_ref,
|
|
|
0
|
|
0
|
|
|
)
|
|
)
|
|
|
|
|
+ showLinkSharingOnboarding = enableTokenAccessUI && results.couldShowLinkSharingOnboarding
|
|
|
AuthorizationManager.getPrivilegeLevelForProject user_id, project_id, token, (error, privilegeLevel)->
|
|
AuthorizationManager.getPrivilegeLevelForProject user_id, project_id, token, (error, privilegeLevel)->
|
|
|
return next(error) if error?
|
|
return next(error) if error?
|
|
|
if !privilegeLevel? or privilegeLevel == PrivilegeLevels.NONE
|
|
if !privilegeLevel? or privilegeLevel == PrivilegeLevels.NONE
|
|
@@ -364,6 +383,7 @@ module.exports = ProjectController =
|
|
|
themes: THEME_LIST
|
|
themes: THEME_LIST
|
|
|
maxDocLength: Settings.max_doc_length
|
|
maxDocLength: Settings.max_doc_length
|
|
|
enableTokenAccessUI: enableTokenAccessUI
|
|
enableTokenAccessUI: enableTokenAccessUI
|
|
|
|
|
+ showLinkSharingOnboarding: showLinkSharingOnboarding
|
|
|
timer.done()
|
|
timer.done()
|
|
|
|
|
|
|
|
_buildProjectList: (allProjects)->
|
|
_buildProjectList: (allProjects)->
|