Add percentage-based rollout for token-access ui

This commit is contained in:
Shane Kilkelly 2017-11-02 11:17:08 +00:00
parent 1cedfed1e4
commit 51ba81e431

View file

@ -27,6 +27,10 @@ CollaboratorsHandler = require '../Collaborators/CollaboratorsHandler'
module.exports = ProjectController =
_isInPercentageRollout: (objectId, percentage) ->
counter = parseInt(objectId.toString().substring(18, 24), 16)
return (counter % 100) < percentage
updateProjectSettings: (req, res, next) ->
project_id = req.params.Project_id
@ -194,7 +198,11 @@ module.exports = ProjectController =
async.parallel {
project: (cb)->
ProjectGetter.getProject project_id, { name: 1, lastUpdated: 1, track_changes: 1 }, cb
ProjectGetter.getProject(
project_id,
{ name: 1, lastUpdated: 1, track_changes: 1, owner_ref: 1 },
cb
)
user: (cb)->
if !user_id?
cb null, defaultSettingsForAnonymousUser(user_id)
@ -296,6 +304,7 @@ module.exports = ProjectController =
token = TokenAccessHandler.getRequestToken(req, project_id)
isTokenMember = results.isTokenMember
enableTokenAccessUI = ProjectController._isInPercentageRollout(project.owner_ref, 10)
AuthorizationManager.getPrivilegeLevelForProject user_id, project_id, token, (error, privilegeLevel)->
return next(error) if error?
if !privilegeLevel? or privilegeLevel == PrivilegeLevels.NONE
@ -346,7 +355,7 @@ module.exports = ProjectController =
languages: Settings.languages
themes: THEME_LIST
maxDocLength: Settings.max_doc_length
enableTokenAccessUI: true
enableTokenAccessUI: enableTokenAccessUI
timer.done()
_buildProjectList: (allProjects)->