From b9da0e187edc05626f315d781ec2b0d626b88dba Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 19 Sep 2012 17:42:36 +0200 Subject: [PATCH 1/2] Revert "Fixed foreach loop on session IDs, was breaking EP on single session in cookie." This reverts commit 443a71bc9ce33b150fbfd06332a20b072250c24e. modified: src/node/db/SecurityManager.js --- src/node/db/SecurityManager.js | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/node/db/SecurityManager.js b/src/node/db/SecurityManager.js index 7e3581746..1894ee59a 100644 --- a/src/node/db/SecurityManager.js +++ b/src/node/db/SecurityManager.js @@ -123,29 +123,26 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) } var sessionIDs = sessionCookie.split(','); - 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; + 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(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; - cb(); // finish the current value and go to next - }); - }, callback) - } + // There is a valid session + validSession = true; + sessionAuthor = sessionInfo.authorID; + }); + }, callback) }, //get author for token function(callback) From a72ade4494ad0df10fd99bd7692d73546e5284f7 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Wed, 19 Sep 2012 17:48:26 +0200 Subject: [PATCH 2/2] Fix async.forEach in MultiSession code --- src/node/db/SecurityManager.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/node/db/SecurityManager.js b/src/node/db/SecurityManager.js index 1894ee59a..59e27b550 100644 --- a/src/node/db/SecurityManager.js +++ b/src/node/db/SecurityManager.js @@ -123,7 +123,7 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) } var sessionIDs = sessionCookie.split(','); - async.foreach(sessionIDs, function(sessionID) { + async.forEach(sessionIDs, function(sessionID, callback) { sessionManager.getSessionInfo(sessionID, function(err, sessionInfo) { //skip session if it doesn't exist if(err && err.message == "sessionID does not exist") return; @@ -141,8 +141,10 @@ exports.checkAccess = function (padID, sessionCookie, token, password, callback) // There is a valid session validSession = true; sessionAuthor = sessionInfo.authorID; + + callback(); }); - }, callback) + }, callback); }, //get author for token function(callback)