diff --git a/services/web/app/coffee/Features/User/UserSessionsManager.coffee b/services/web/app/coffee/Features/User/UserSessionsManager.coffee index 62e2ddc22d..bad1a1cb37 100644 --- a/services/web/app/coffee/Features/User/UserSessionsManager.coffee +++ b/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