Shane Kilkelly пре 10 година
родитељ
комит
6f20f565fe
1 измењених фајлова са 16 додато и 0 уклоњено
  1. 16 0
      services/web/app/coffee/Features/User/UserSessionsManager.coffee

+ 16 - 0
services/web/app/coffee/Features/User/UserSessionsManager.coffee

@@ -13,6 +13,12 @@ module.exports = UserSessionsManager =
 		return "sess:#{sessionId}"
 		return "sess:#{sessionId}"
 
 
 	trackSession: (user, sessionId, callback=(err)-> ) ->
 	trackSession: (user, sessionId, callback=(err)-> ) ->
+		if !user
+			logger.log {sessionId}, "no user to track, returning"
+			return callback(null)
+		if !sessionId
+			logger.log {user_id: user._id}, "no sessionId to track, returning"
+			return callback(null)
 		logger.log {user_id: user._id, sessionId}, "onLogin handler"
 		logger.log {user_id: user._id, sessionId}, "onLogin handler"
 		sessionSetKey = UserSessionsManager._sessionSetKey(user)
 		sessionSetKey = UserSessionsManager._sessionSetKey(user)
 		value = UserSessionsManager._sessionKey sessionId
 		value = UserSessionsManager._sessionKey sessionId
@@ -26,6 +32,12 @@ module.exports = UserSessionsManager =
 				callback()
 				callback()
 
 
 	untrackSession: (user, sessionId, callback=(err)-> ) ->
 	untrackSession: (user, sessionId, callback=(err)-> ) ->
+		if !user
+			logger.log {sessionId}, "no user to untrack, returning"
+			return callback(null)
+		if !sessionId
+			logger.log {user_id: user._id}, "no sessionId to untrack, returning"
+			return callback(null)
 		logger.log {user_id: user._id, sessionId}, "onLogout handler"
 		logger.log {user_id: user._id, sessionId}, "onLogout handler"
 		if !user
 		if !user
 			logger.log {sessionId}, "no user, for some reason"
 			logger.log {sessionId}, "no user, for some reason"
@@ -42,6 +54,9 @@ module.exports = UserSessionsManager =
 				callback()
 				callback()
 
 
 	revokeAllUserSessions: (user, callback=(err)->) ->
 	revokeAllUserSessions: (user, callback=(err)->) ->
+		if !user
+			logger.log {}, "no user to revoke sessions for, returning"
+			return callback(null)
 		logger.log {user_id: user._id}, "revoking all existing sessions for user"
 		logger.log {user_id: user._id}, "revoking all existing sessions for user"
 		sessionSetKey = UserSessionsManager._sessionSetKey(user)
 		sessionSetKey = UserSessionsManager._sessionSetKey(user)
 		rclient.smembers sessionSetKey, (err, sessionKeys) ->
 		rclient.smembers sessionSetKey, (err, sessionKeys) ->
@@ -60,6 +75,7 @@ module.exports = UserSessionsManager =
 
 
 	touch: (user, callback=(err)->) ->
 	touch: (user, callback=(err)->) ->
 		if !user
 		if !user
+			logger.log {}, "no user to touch sessions for, returning"
 			return callback(null)
 			return callback(null)
 		sessionSetKey = UserSessionsManager._sessionSetKey(user)
 		sessionSetKey = UserSessionsManager._sessionSetKey(user)
 		rclient.expire sessionSetKey, "#{Settings.cookieSessionLength}", (err, response) ->
 		rclient.expire sessionSetKey, "#{Settings.cookieSessionLength}", (err, response) ->