From 9f24f696a5c932923712d607732e4636281d6dfa Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Fri, 29 Sep 2017 16:32:07 +0100 Subject: [PATCH] Use custom header, send anonToken in payload to `joinProject` --- .../Features/TokenAccess/TokenAccessController.coffee | 2 +- services/web/public/coffee/base.coffee | 2 +- .../public/coffee/ide/connection/ConnectionManager.coffee | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/services/web/app/coffee/Features/TokenAccess/TokenAccessController.coffee b/services/web/app/coffee/Features/TokenAccess/TokenAccessController.coffee index 0dbe5dff99..93800d7991 100644 --- a/services/web/app/coffee/Features/TokenAccess/TokenAccessController.coffee +++ b/services/web/app/coffee/Features/TokenAccess/TokenAccessController.coffee @@ -51,6 +51,7 @@ module.exports = TokenAccessController = "adding anonymous user to project with readOnly token" TokenAccessHandler.grantSessionReadOnlyTokenAccess(req, project._id, token) req.params.Project_id = project._id.toString() + req._anonToken = token return ProjectController.loadEditor(req, res, next) else logger.log {userId, projectId: project._id}, @@ -61,7 +62,6 @@ module.exports = TokenAccessController = "error adding user to project with readAndWrite token" return next(err) req.params.Project_id = project._id.toString() - req._anonToken = token return ProjectController.loadEditor(req, res, next) diff --git a/services/web/public/coffee/base.coffee b/services/web/public/coffee/base.coffee index f2a71ea6f3..95d17ebb75 100644 --- a/services/web/public/coffee/base.coffee +++ b/services/web/public/coffee/base.coffee @@ -19,7 +19,7 @@ define [ "ngTagsInput" ]).config ($qProvider, sixpackProvider, $httpProvider)-> if window.anonToken - $httpProvider.defaults.headers.common['Authorization'] = window.anonToken + $httpProvider.defaults.headers.common['x-sl-anon-token'] = window.anonToken $qProvider.errorOnUnhandledRejections(false) sixpackProvider.setOptions({ debug: false diff --git a/services/web/public/coffee/ide/connection/ConnectionManager.coffee b/services/web/public/coffee/ide/connection/ConnectionManager.coffee index 134d0cb980..ac79fbfa44 100644 --- a/services/web/public/coffee/ide/connection/ConnectionManager.coffee +++ b/services/web/public/coffee/ide/connection/ConnectionManager.coffee @@ -154,9 +154,12 @@ define [], () -> # Note: if the "joinProject" message doesn't reach the server # (e.g. if we are in a disconnected state at this point) the # callback will never be executed - @ide.socket.emit 'joinProject', { + data = { project_id: @ide.project_id - }, (err, project, permissionsLevel, protocolVersion) => + } + if window.anonToken + data.anonToken = window.anonToken + @ide.socket.emit 'joinProject', data, (err, project, permissionsLevel, protocolVersion) => if err? or !project? return @reportConnectionError(err)