Fixed previous login dialog.
Ylian Saint-Hilaire committed
Mar 9, 2021 at 17:26 UTC
bb8e6d6511125d4ca9cbdc5bc591850410c35059
3 files changed
+9
-11
db.js
+4
-4
@@ -1241,7 +1241,7 @@ module.exports.CreateDB = function (parent, func) {
1241
obj.GetEventsWithLimit = function (ids, domain, limit, func) { obj.eventsfile.find({ domain: domain, ids: { $in: ids } }).project({ type: 0, _id: 0, domain: 0, ids: 0, node: 0 }).sort({ time: -1 }).limit(limit).toArray(func); };
1242
obj.GetUserEvents = function (ids, domain, username, func) { obj.eventsfile.find({ domain: domain, $or: [{ ids: { $in: ids } }, { username: username }] }).project({ type: 0, _id: 0, domain: 0, ids: 0, node: 0 }).sort({ time: -1 }).toArray(func); };
1243
obj.GetUserEventsWithLimit = function (ids, domain, username, limit, func) { obj.eventsfile.find({ domain: domain, $or: [{ ids: { $in: ids } }, { username: username }] }).project({ type: 0, _id: 0, domain: 0, ids: 0, node: 0 }).sort({ time: -1 }).limit(limit).toArray(func); };
1244
- obj.GetUserLoginEvents = function (domain, username, func) { obj.eventsfile.find({ domain: domain, action: { $in: ['authfail', 'login'] }, msgArgs: { $exists: true } }).project({ action: 1, time: 1, msgid: 1, msgArgs: 1 }).sort({ time: -1 }).toArray(func); };
1244
+ obj.GetUserLoginEvents = function (domain, userid, func) { obj.eventsfile.find({ domain: domain, action: { $in: ['authfail', 'login'] }, userid: userid, msgArgs: { $exists: true } }).project({ action: 1, time: 1, msgid: 1, msgArgs: 1 }).sort({ time: -1 }).toArray(func); };
1245
obj.GetNodeEventsWithLimit = function (nodeid, domain, limit, func) { obj.eventsfile.find({ domain: domain, nodeid: nodeid }).project({ type: 0, etype: 0, _id: 0, domain: 0, ids: 0, node: 0, nodeid: 0 }).sort({ time: -1 }).limit(limit).toArray(func); };
1246
obj.GetNodeEventsSelfWithLimit = function (nodeid, domain, userid, limit, func) { obj.eventsfile.find({ domain: domain, nodeid: nodeid, userid: { $in: [userid, null] } }).project({ type: 0, etype: 0, _id: 0, domain: 0, ids: 0, node: 0, nodeid: 0 }).sort({ time: -1 }).limit(limit).toArray(func); };
1247
obj.RemoveAllEvents = function (domain) { obj.eventsfile.deleteMany({ domain: domain }, { multi: true }); };
@@ -1427,11 +1427,11 @@ module.exports.CreateDB = function (parent, func) {
1427
obj.eventsfile.find({ domain: domain, $or: [{ ids: { $in: ids } }, { username: username }] }, { type: 0, _id: 0, domain: 0, ids: 0, node: 0 }).sort({ time: -1 }).limit(limit, func);
1428
}
1429
};
1430
- obj.GetUserLoginEvents = function (domain, username, func) {
1430
+ obj.GetUserLoginEvents = function (domain, userid, func) {
1431
if (obj.databaseType == 1) {
1432
- obj.eventsfile.find({ domain: domain, action: { $in: ['authfail', 'login'] }, msgArgs: { $exists: true } }, { action: 1, time: 1, msgid: 1, msgArgs: 1 }).sort({ time: -1 }).exec(func);
1432
+ obj.eventsfile.find({ domain: domain, action: { $in: ['authfail', 'login'] }, userid: userid, msgArgs: { $exists: true } }, { action: 1, time: 1, msgid: 1, msgArgs: 1 }).sort({ time: -1 }).exec(func);
1433
} else {
1434
- obj.eventsfile.find({ domain: domain, action: { $in: ['authfail', 'login'] }, msgArgs: { $exists: true } }, { action: 1, time: 1, msgid: 1, msgArgs: 1 }).sort({ time: -1 }, func);
1434
+ obj.eventsfile.find({ domain: domain, action: { $in: ['authfail', 'login'] }, userid: userid, msgArgs: { $exists: true } }, { action: 1, time: 1, msgid: 1, msgArgs: 1 }).sort({ time: -1 }, func);
1435
}
1436
};
1437
obj.GetNodeEventsWithLimit = function (nodeid, domain, limit, func) { if (obj.databaseType == 1) { obj.eventsfile.find({ domain: domain, nodeid: nodeid }, { type: 0, etype: 0, _id: 0, domain: 0, ids: 0, node: 0, nodeid: 0 }).sort({ time: -1 }).limit(limit).exec(func); } else { obj.eventsfile.find({ domain: domain, nodeid: nodeid }, { type: 0, etype: 0, _id: 0, domain: 0, ids: 0, node: 0, nodeid: 0 }).sort({ time: -1 }).limit(limit, func); } };
meshdesktopmultiplex.js
+1
-2
@@ -564,12 +564,11 @@ function CreateDesktopMultiplexor(parent, domain, nodeid, func) {
564
565
switch (command) {
566
case 3: // Tile, check dimentions and store
567
- if (data.length < 10) break;
567
+ if ((data.length < 10) || (obj.lastData == null)) break;
568
var x = data.readUInt16BE(4), y = data.readUInt16BE(6);
569
var dimensions = require('image-size')(data.slice(8));
570
var sx = (x / 16), sy = (y / 16), sw = (dimensions.width / 16), sh = (dimensions.height / 16);
571
obj.counter++;
572
- //console.log("Tile", x, y, dimensions.width, dimensions.height);
572
573
// Keep a reference to this image & how many tiles it covers
574
obj.images[obj.counter] = { next: null, prev: obj.lastData, data: jumboData };
meshuser.js
+4
-5
@@ -5401,7 +5401,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5401
// Get previous logins for self
5402
if (db.GetUserLoginEvents) {
5403
// New way
5404
- db.GetUserLoginEvents(domain.id, user._id.split('/')[2], function (err, docs) {
5404
+ db.GetUserLoginEvents(domain.id, user._id, function (err, docs) {
5405
if (err != null) return;
5406
var e = [];
5407
for (var i in docs) { e.push({ t: docs[i].time, m: docs[i].msgid, a: docs[i].msgArgs }); }
@@ -5410,10 +5410,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5410
} else {
5411
// Old way
5412
db.GetUserEvents([user._id], domain.id, user._id.split('/')[2], function (err, docs) {
5413
- console.log(docs);
5413
if (err != null) return;
5414
var e = [];
5416
- for (var i in docs) { if ((docs[i].msgArgs) && ((docs[i].action == 'authfail') || (docs[i].action == 'login'))) { e.push({ t: docs[i].time, m: docs[i].msgid, a: docs[i].msgArgs }); } }
5415
+ for (var i in docs) { if ((docs[i].msgArgs) && (docs[i].userid == command.userid) && ((docs[i].action == 'authfail') || (docs[i].action == 'login'))) { e.push({ t: docs[i].time, m: docs[i].msgid, a: docs[i].msgArgs }); } }
5416
try { ws.send(JSON.stringify({ action: 'previousLogins', events: e })); } catch (ex) { }
5417
});
5418
}
@@ -5424,7 +5423,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5423
if ((obj.crossDomain === true) || (splitUser[1] === domain.id)) {
5424
if (db.GetUserLoginEvents) {
5425
// New way
5427
- db.GetUserLoginEvents(splitUser[1], splitUser[2], function (err, docs) {
5426
+ db.GetUserLoginEvents(splitUser[1], user._id, function (err, docs) {
5427
if (err != null) return;
5428
var e = [];
5429
for (var i in docs) { e.push({ t: docs[i].time, m: docs[i].msgid, a: docs[i].msgArgs }); }
@@ -5435,7 +5434,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5434
db.GetUserEvents([command.userid], splitUser[1], splitUser[2], function (err, docs) {
5435
if (err != null) return;
5436
var e = [];
5438
- for (var i in docs) { if ((docs[i].msgArgs) && ((docs[i].action == 'authfail') || (docs[i].action == 'login'))) { e.push({ t: docs[i].time, m: docs[i].msgid, a: docs[i].msgArgs }); } }
5437
+ for (var i in docs) { if ((docs[i].msgArgs) && (docs[i].userid == command.userid) && ((docs[i].action == 'authfail') || (docs[i].action == 'login'))) { e.push({ t: docs[i].time, m: docs[i].msgid, a: docs[i].msgArgs }); } }
5438
try { ws.send(JSON.stringify({ action: 'previousLogins', userid: command.userid, events: e })); } catch (ex) { }
5439
});
5440
}