|
|
@ -71,11 +71,11 @@ module.exports = function(User) {
|
|
|
|
|
|
|
|
|
|
|
|
async.waterfall([
|
|
|
|
async.waterfall([
|
|
|
|
async.apply(db.getSortedSetRange, 'uid:' + uid + ':sessions', 0, -1),
|
|
|
|
async.apply(db.getSortedSetRange, 'uid:' + uid + ':sessions', 0, -1),
|
|
|
|
function(sids, next) {
|
|
|
|
function (sids, next) {
|
|
|
|
_sids = sids;
|
|
|
|
_sids = sids;
|
|
|
|
async.map(sids, db.sessionStore.get.bind(db.sessionStore), next);
|
|
|
|
async.map(sids, db.sessionStore.get.bind(db.sessionStore), next);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
function(sessions, next) {
|
|
|
|
function (sessions, next) {
|
|
|
|
sessions.forEach(function(sessionObj, idx) {
|
|
|
|
sessions.forEach(function(sessionObj, idx) {
|
|
|
|
if (sessionObj && sessionObj.meta) {
|
|
|
|
if (sessionObj && sessionObj.meta) {
|
|
|
|
sessionObj.meta.current = curSessionId === _sids[idx];
|
|
|
|
sessionObj.meta.current = curSessionId === _sids[idx];
|
|
|
@ -87,16 +87,16 @@ module.exports = function(User) {
|
|
|
|
expired;
|
|
|
|
expired;
|
|
|
|
|
|
|
|
|
|
|
|
sessions = sessions.filter(function(sessionObj, idx) {
|
|
|
|
sessions = sessions.filter(function(sessionObj, idx) {
|
|
|
|
expired = !sessionObj || !sessionObj.hasOwnProperty('passport')
|
|
|
|
expired = !sessionObj || !sessionObj.hasOwnProperty('passport') ||
|
|
|
|
|| !sessionObj.passport.hasOwnProperty('user')
|
|
|
|
!sessionObj.passport.hasOwnProperty('user') ||
|
|
|
|
|| parseInt(sessionObj.passport.user, 10) !== parseInt(uid, 10);
|
|
|
|
parseInt(sessionObj.passport.user, 10) !== parseInt(uid, 10);
|
|
|
|
|
|
|
|
|
|
|
|
if (expired) {
|
|
|
|
if (expired) {
|
|
|
|
expiredSids.push(_sids[idx]);
|
|
|
|
expiredSids.push(_sids[idx]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return !expired;
|
|
|
|
return !expired;
|
|
|
|
}, [])
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
async.each(expiredSids, function(sid, next) {
|
|
|
|
async.each(expiredSids, function(sid, next) {
|
|
|
|
User.auth.revokeSession(sid, uid, next);
|
|
|
|
User.auth.revokeSession(sid, uid, next);
|
|
|
@ -104,7 +104,7 @@ module.exports = function(User) {
|
|
|
|
next(null, sessions);
|
|
|
|
next(null, sessions);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
], function(err, sessions) {
|
|
|
|
], function (err, sessions) {
|
|
|
|
callback(err, sessions ? sessions.map(function(sessObj) {
|
|
|
|
callback(err, sessions ? sessions.map(function(sessObj) {
|
|
|
|
sessObj.meta.datetimeISO = new Date(sessObj.meta.datetime).toISOString();
|
|
|
|
sessObj.meta.datetimeISO = new Date(sessObj.meta.datetime).toISOString();
|
|
|
|
return sessObj.meta;
|
|
|
|
return sessObj.meta;
|
|
|
|