From e0ce988d32761b35d8a18d89c7d90807a167d1c9 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 10 Sep 2018 17:21:58 +0100 Subject: [PATCH] Intelligently redirect to v1 if no v2 project found for token --- .../Features/TokenAccess/TokenAccessController.coffee | 10 ++++++++++ services/web/app/coffee/router.coffee | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/TokenAccess/TokenAccessController.coffee b/services/web/app/coffee/Features/TokenAccess/TokenAccessController.coffee index b6b65cc7a7..395489c608 100644 --- a/services/web/app/coffee/Features/TokenAccess/TokenAccessController.coffee +++ b/services/web/app/coffee/Features/TokenAccess/TokenAccessController.coffee @@ -3,9 +3,19 @@ AuthenticationController = require '../Authentication/AuthenticationController' TokenAccessHandler = require './TokenAccessHandler' Errors = require '../Errors/Errors' logger = require 'logger-sharelatex' +settings = require 'settings-sharelatex' module.exports = TokenAccessController = + redirectNotFoundErrorToV1: (err, req, res, next) -> + if err instanceof Errors.NotFoundError and settings.overleaf + logger.log { + token: req.params['read_and_write_token'] + }, "[TokenAccess] No project found for token, redirecting to v1" + res.redirect(settings.overleaf.host + req.url) + else + next(err) + _loadEditor: (projectId, req, res, next) -> req.params.Project_id = projectId.toString() return ProjectController.loadEditor(req, res, next) diff --git a/services/web/app/coffee/router.coffee b/services/web/app/coffee/router.coffee index b196c56870..1fc42c354a 100644 --- a/services/web/app/coffee/router.coffee +++ b/services/web/app/coffee/router.coffee @@ -426,6 +426,7 @@ module.exports = class Router maxRequests: 10, timeInterval: 60 }), - TokenAccessController.readAndWriteToken + TokenAccessController.readAndWriteToken, + TokenAccessController.redirectNotFoundErrorToV1 webRouter.get '*', ErrorController.notFound