diff --git a/src/user/auth.js b/src/user/auth.js index 5ec8ab2030..9e4738514a 100644 --- a/src/user/auth.js +++ b/src/user/auth.js @@ -135,12 +135,15 @@ module.exports = function (User) { ]); }; - User.auth.revokeAllSessions = async function (uids) { + User.auth.revokeAllSessions = async function (uids, except) { uids = Array.isArray(uids) ? uids : [uids]; const sids = await db.getSortedSetsMembers(uids.map(uid => `uid:${uid}:sessions`)); const promises = []; uids.forEach((uid, index) => { - promises.push(sids[index].map(s => User.auth.revokeSession(s, uid))); + const ids = sids[index].filter(id => id !== except); + if (ids.length) { + promises.push(ids.map(s => User.auth.revokeSession(s, uid))); + } }); await Promise.all(promises); };