From 51ba81e431809457b18b9edfd67150dee4af2ebb Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 2 Nov 2017 11:17:08 +0000 Subject: [PATCH] Add percentage-based rollout for token-access ui --- .../Features/Project/ProjectController.coffee | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/services/web/app/coffee/Features/Project/ProjectController.coffee b/services/web/app/coffee/Features/Project/ProjectController.coffee index edf85bbf9d..fc9f2a0544 100644 --- a/services/web/app/coffee/Features/Project/ProjectController.coffee +++ b/services/web/app/coffee/Features/Project/ProjectController.coffee @@ -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)->