From 443a71bc9ce33b150fbfd06332a20b072250c24e Mon Sep 17 00:00:00 2001 From: johnyma22 Date: Tue, 18 Sep 2012 16:30:26 +0100 Subject: [PATCH] Fixed foreach loop on session IDs, was breaking EP on single session in cookie. --- src/node/db/SecurityManager.js | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/node/db/SecurityManager.js b/src/node/db/SecurityManager.js index 1894ee59..7e358174 100644 --- a/src/node/db/SecurityManager.js +++ b/src/node/db/SecurityManager.js @@ -123,26 +123,29 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) } var sessionIDs = sessionCookie.split(','); - async.foreach(sessionIDs, function(sessionID) { - sessionManager.getSessionInfo(sessionID, function(err, sessionInfo) { - //skip session if it doesn't exist - if(err && err.message == "sessionID does not exist") return; + if (sessionIDs){ + async.forEach(sessionIDs, function(sessionID, cb){ + sessionManager.getSessionInfo(sessionID, function(err, sessionInfo) { + //skip session if it doesn't exist + if(err && err.message == "sessionID does not exist") return; - if(ERR(err, callback)) return; + if(ERR(err, callback)) return; - var now = Math.floor(new Date().getTime()/1000); + var now = Math.floor(new Date().getTime()/1000); - //is it for this group? - if(sessionInfo.groupID != groupID) return; + //is it for this group? + if(sessionInfo.groupID != groupID) return; - //is validUntil still ok? - if(sessionInfo.validUntil <= now) return; + //is validUntil still ok? + if(sessionInfo.validUntil <= now) return; - // There is a valid session - validSession = true; - sessionAuthor = sessionInfo.authorID; - }); - }, callback) + // There is a valid session + validSession = true; + sessionAuthor = sessionInfo.authorID; + cb(); // finish the current value and go to next + }); + }, callback) + } }, //get author for token function(callback)