Shane Kilkelly 10 лет назад
Родитель
Сommit
8855d0fa0f
1 измененных файлов с 14 добавлено и 1 удалено
  1. 14 1
      services/web/app/coffee/Features/User/UserSessionsManager.coffee

+ 14 - 1
services/web/app/coffee/Features/User/UserSessionsManager.coffee

@@ -43,7 +43,20 @@ module.exports = UserSessionsManager =
 
 	revokeAllSessions: (user, callback=(err)->) ->
 		logger.log {user_id: user._id}, "revoking all existing sessions for user"
-		callback(null)
+		sessionSetKey = UserSessionsManager._sessionSetKey(user)
+		rclient.smembers sessionSetKey, (err, sessionKeys) ->
+			if err
+				logger.err {err, user_id: user._id, sessionSetKey}, "error getting contents of UserSessions set"
+				return callback(err)
+			logger.log {user_id: user._id, count: sessionKeys.length}, "deleting sessions for user"
+			rclient.multi()
+				.del(sessionKeys)
+				.srem(sessionSetKey, sessionKeys)
+				.exec (err, result) ->
+					if err
+						logger.err {err, user_id: user._id, sessionSetKey}, "error revoking all sessions for user"
+						return callback(err)
+					callback(null)
 
 	touch: (user, callback=(err)->) ->
 		if !user