From 6569e34873b5af94541255f4e27f54361d18fa96 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 3 Sep 2018 11:01:14 +0100 Subject: [PATCH 1/2] Extract logout to function, so different redirect can be called --- .../web/app/coffee/Features/User/UserController.coffee | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/User/UserController.coffee b/services/web/app/coffee/Features/User/UserController.coffee index a9c4e2a00d..22af41db6a 100644 --- a/services/web/app/coffee/Features/User/UserController.coffee +++ b/services/web/app/coffee/Features/User/UserController.coffee @@ -118,7 +118,7 @@ module.exports = UserController = logger.err err:err, "error populateTeamInvites" res.sendStatus(200) - logout : (req, res)-> + _doLogout: (req, cb = (err) ->) -> metrics.inc "user.logout" user = AuthenticationController.getSessionUser(req) logger.log user: user, "logging out" @@ -127,9 +127,14 @@ module.exports = UserController = req.session.destroy (err)-> if err logger.err err: err, 'error destorying session' + cb(err) if user? UserSessionsManager.untrackSession(user, sessionId) SudoModeHandler.clearSudoMode(user._id) + cb() + + logout : (req, res)-> + UserController._doLogout req, (err) -> res.redirect '/login' register : (req, res, next = (error) ->)-> From 53bd2cfd3387e10204df65ea6d306997c04ed94b Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Mon, 3 Sep 2018 11:46:36 +0100 Subject: [PATCH 2/2] Add error handling on logout --- services/web/app/coffee/Features/User/UserController.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/User/UserController.coffee b/services/web/app/coffee/Features/User/UserController.coffee index 22af41db6a..70d61a91b2 100644 --- a/services/web/app/coffee/Features/User/UserController.coffee +++ b/services/web/app/coffee/Features/User/UserController.coffee @@ -133,8 +133,9 @@ module.exports = UserController = SudoModeHandler.clearSudoMode(user._id) cb() - logout : (req, res)-> + logout : (req, res, next)-> UserController._doLogout req, (err) -> + return next(err) if err? res.redirect '/login' register : (req, res, next = (error) ->)->