Added database links cleanup code.

Ylian Saint-Hilaire committed Mar 30, 2020 at 17:47 UTC 95e8b875099b7911468214aec670fe973467d126
5 files changed +1082 -362
meshuser.js
+32 -19
@@ -504,6 +504,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
504 if (docs == null) { docs = []; }
505 var r = {};
506 for (i in docs) {
507 + // Check device links, if a link points to an unknown user, remove it.
508 + parent.cleanDevice(docs[i]);
509 +
510 // Remove any connectivity and power state information, that should not be in the database anyway.
511 // TODO: Find why these are sometimes saves in the db.
512 if (docs[i].conn != null) { delete docs[i].conn; }
@@ -747,26 +750,36 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
750 if (parent.parent.config.settings.maxinvalidlogin == false) {
751 r = 'Bad login filter is disabled.';
752 } else {
750 - if (typeof parent.parent.config.settings.maxinvalidlogin.coolofftime == 'number') {
751 - r = "Max is " + parent.parent.config.settings.maxinvalidlogin.count + " bad login(s) in " + parent.parent.config.settings.maxinvalidlogin.time + " minute(s), " + parent.parent.config.settings.maxinvalidlogin.coolofftime + " minute(s) cooloff.\r\n";
752 - } else {
753 - r = "Max is " + parent.parent.config.settings.maxinvalidlogin.count + " bad login(s) in " + parent.parent.config.settings.maxinvalidlogin.time + " minute(s).\r\n";
754 - }
755 - var badLoginCount = 0;
756 - parent.cleanBadLoginTable();
757 - for (var i in parent.badLoginTable) {
758 - badLoginCount++;
759 - if (typeof parent.badLoginTable[i] == 'number') {
760 - r += "Cooloff for " + Math.floor((parent.badLoginTable[i] - Date.now()) / 60000) + " minute(s)\r\n";
753 + if (cmdargs['_'] == 'reset') {
754 + // Reset bad login table
755 + parent.badLoginTable = {};
756 + parent.badLoginTableLastClean = 0;
757 + r = 'Done.'
758 + } else if (cmdargs['_'] == '') {
759 + // Show current bad login table
760 + if (typeof parent.parent.config.settings.maxinvalidlogin.coolofftime == 'number') {
761 + r = "Max is " + parent.parent.config.settings.maxinvalidlogin.count + " bad login(s) in " + parent.parent.config.settings.maxinvalidlogin.time + " minute(s), " + parent.parent.config.settings.maxinvalidlogin.coolofftime + " minute(s) cooloff.\r\n";
762 } else {
762 - if (parent.badLoginTable[i].length > 1) {
763 - r += (i + ' - ' + parent.badLoginTable[i].length + " records\r\n");
763 + r = "Max is " + parent.parent.config.settings.maxinvalidlogin.count + " bad login(s) in " + parent.parent.config.settings.maxinvalidlogin.time + " minute(s).\r\n";
764 + }
765 + var badLoginCount = 0;
766 + parent.cleanBadLoginTable();
767 + for (var i in parent.badLoginTable) {
768 + badLoginCount++;
769 + if (typeof parent.badLoginTable[i] == 'number') {
770 + r += "Cooloff for " + Math.floor((parent.badLoginTable[i] - Date.now()) / 60000) + " minute(s)\r\n";
771 } else {
765 - r += (i + ' - ' + parent.badLoginTable[i].length + " record\r\n");
772 + if (parent.badLoginTable[i].length > 1) {
773 + r += (i + ' - ' + parent.badLoginTable[i].length + " records\r\n");
774 + } else {
775 + r += (i + ' - ' + parent.badLoginTable[i].length + " record\r\n");
776 + }
777 }
778 }
779 + if (badLoginCount == 0) { r += 'No bad logins.'; }
780 + } else {
781 + r = 'Usage: badlogin [reset]';
782 }
769 - if (badLoginCount == 0) { r += 'No bad logins.'; }
783 }
784 break;
785 }
@@ -1305,7 +1318,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
1318 // Remove the link and save the node to the database
1319 delete node.links[deluser._id];
1320 if (Object.keys(node.links).length == 0) { delete node.links; }
1308 - db.Set(node);
1321 + db.Set(parent.cleanDevice(node));
1322
1323 // Event the node change
1324 var event = { etype: 'node', userid: user._id, username: user.name, action: 'changenode', nodeid: node._id, domain: domain.id, msg: (command.rights == 0) ? ('Removed user device rights for ' + node.name) : ('Changed user device rights for ' + node.name), node: parent.CloneSafeNode(node) }
@@ -2518,7 +2531,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2531 // Save the device
2532 if (nodeChanged == true) {
2533 // Save the node to the database
2521 - db.Set(node);
2534 + db.Set(parent.cleanDevice(node));
2535
2536 // Event the node change
2537 var event = { etype: 'node', userid: user._id, username: user.name, action: 'changenode', nodeid: node._id, domain: domain.id, msg: (command.rights == 0) ? ('Removed user device rights for ' + node.name) : ('Changed user device rights for ' + node.name), node: parent.CloneSafeNode(node) }
@@ -2720,7 +2733,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2733 // Perform the switch, start by saving the node with the new meshid.
2734 const oldMeshId = node.meshid;
2735 node.meshid = command.meshid;
2723 - db.Set(node);
2736 + db.Set(parent.cleanDevice(node));
2737
2738 // If the device is connected on this server, switch it now.
2739 var agentSession = parent.wsagents[node._id];
@@ -2997,7 +3010,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
3010
3011 if (change == 1) {
3012 // Save the node
3000 - db.Set(node);
3013 + db.Set(parent.cleanDevice(node));
3014
3015 // Event the node change. Only do this if the database will not do it.
3016 event.msg = 'Changed device ' + node.name + ' from group ' + mesh.name + ': ' + changes.join(', ');
views/default-mobile.handlebars
+2 -2
@@ -1112,7 +1112,7 @@
1112 for (var i in nodes) { if (nodes[i]._id == message.event.nodeid) { index = i; break; } }
1113 if (index != -1) {
1114 var node = nodes[index];
1115 - if (meshes[message.event.newMeshId] == null) {
1115 + if ((meshes[message.event.newMeshId] == null) && ((userinfo.links == null) || (userinfo.links[node._id] == null))) {
1116 // We don't see the new mesh, remove this device
1117
1118 // TODO: Correctly disconnect from this node (Desktop/Terminal/Files...)
@@ -1764,7 +1764,7 @@
1764 r += '</span><span id=MxMESH style=cursor:pointer onclick=goForward("' + nodes[i].meshid + '")>' + EscapeHtml(meshes[nodes[i].meshid].name) + '</span>' + extra + '<span id=DevxHeader' + deviceHeaderId + ' style=color:lightgray></span></div>';
1765 current = nodes[i].meshid;
1766 } else {
1767 - r += '</span><span id=MxMESH style=cursor:pointer><i>' + "Indivitual Devices" + '</i></span>' + extra + '<span id=DevxHeader' + deviceHeaderId + ' style=color:lightgray></span></div>';
1767 + r += '</span><span id=MxMESH><i>' + "Indivitual Devices" + '</i></span><span id=DevxHeader' + deviceHeaderId + ' style=color:lightgray></span></div>';
1768 current = '*';
1769 }
1770
views/default.handlebars
+2 -2
@@ -2465,7 +2465,7 @@
2465 for (var i in nodes) { if (nodes[i]._id == message.event.nodeid) { index = i; break; } }
2466 if (index != -1) {
2467 var node = nodes[index];
2468 - if (meshes[message.event.newMeshId] == null) {
2468 + if ((meshes[message.event.newMeshId] == null) && ((userinfo.links == null) || (userinfo.links[node._id] == null))) {
2469 // We don't see the new mesh, remove this device
2470
2471 // TODO: Correctly disconnect from this node (Desktop/Terminal/Files...)
@@ -2994,7 +2994,7 @@
2994 r += '<span id=MxMESH cmenu=meshContextMenu tabindex=0 style=cursor:pointer onclick=gotoMesh("' + node.meshid + '") onkeypress="if (event.key==\'Enter\') gotoMesh(\'' + node.meshid + '\')">' + EscapeHtml(meshes[node.meshid].name) + '</span>' + getMeshActions(mesh2, meshrights) + '</div>';
2995 current = node.meshid;
2996 } else {
2997 - r += '<span id=MxMESH cmenu=meshContextMenu tabindex=0 style=cursor:pointer><i>' + "Indivitual Devices" + '</i></span></div>';
2997 + r += '<span id=MxMESH><i>' + "Indivitual Devices" + '</i></span></div>';
2998 current = '*';
2999 }
3000 if (view == 2) { r += '</div>'; }
webserver.js
+55 -4
@@ -216,6 +216,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
216 }
217
218 // Fetch all device groups (meshes) from the database, keep this in memory
219 + // As we load things in memory, we will also be doing some cleaning up.
220 + // We will not save any clean up in the database right now, instead it will be saved next time there is a change.
221 obj.db.GetAllType('mesh', function (err, docs) {
222 obj.common.unEscapeAllLinksFieldName(docs);
223 for (var i in docs) { obj.meshes[docs[i]._id] = docs[i]; } // Get all meshes, including deleted ones.
@@ -223,14 +225,63 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
225 // Fetch all user groups from the database, keep this in memory
226 obj.db.GetAllType('ugrp', function (err, docs) {
227 obj.common.unEscapeAllLinksFieldName(docs);
226 - for (var i in docs) { obj.userGroups[docs[i]._id] = docs[i]; } // Get all user groups
228
228 - // We loaded the users, device groups and suer group state, start the server
229 + // Perform user group link cleanup
230 + for (var i in docs) {
231 + const ugrp = docs[i];
232 + if (ugrp.links != null) {
233 + for (var j in ugrp.links) {
234 + if (j.startsWith('user/') && (obj.users[j] == null)) { delete ugrp.links[j]; } // User group has a link to a user that does not exist
235 + else if (j.startsWith('mesh/') && ((obj.meshes[j] == null) || (obj.meshes[j].deleted != null))) { delete ugrp.links[j]; } // User has a link to a device group that does not exist
236 + }
237 + }
238 + obj.userGroups[docs[i]._id] = docs[i]; // Get all user groups
239 + }
240 +
241 + // Perform device group link cleanup
242 + for (var i in obj.meshes) {
243 + const mesh = obj.meshes[i];
244 + if (mesh.links != null) {
245 + for (var j in mesh.links) {
246 + if (j.startsWith('ugrp/') && (obj.userGroups[j] == null)) { delete mesh.links[j]; } // Device group has a link to a user group that does not exist
247 + else if (j.startsWith('user/') && (obj.users[j] == null)) { delete mesh.links[j]; } // Device group has a link to a user that does not exist
248 + }
249 + }
250 + }
251 +
252 + // Perform user link cleanup
253 + for (var i in obj.users) {
254 + const user = obj.users[i];
255 + if (user.links != null) {
256 + for (var j in user.links) {
257 + if (j.startsWith('ugrp/') && (obj.userGroups[j] == null)) { delete user.links[j]; } // User has a link to a user group that does not exist
258 + else if (j.startsWith('mesh/') && ((obj.meshes[j] == null) || (obj.meshes[j].deleted != null))) { delete user.links[j]; } // User has a link to a device group that does not exist
259 + //else if (j.startsWith('node/') && (obj.nodes[j] == null)) { delete user.links[j]; } // TODO
260 + }
261 + //if (Object.keys(user.links).length == 0) { delete user.links; }
262 + }
263 + }
264 +
265 + // We loaded the users, device groups and user group state, start the server
266 serverStart();
267 });
268 });
269 });
270
271 + // Clean up a device, used before saving it in the database
272 + obj.cleanDevice = function (device) {
273 + // Check device links, if a link points to an unknown user, remove it.
274 + if (device.links != null) {
275 + for (var j in device.links) {
276 + if (obj.users[j] == null) {
277 + delete device.links[j];
278 + if (Object.keys(device.links).length == 0) { delete device.links; }
279 + }
280 + }
281 + }
282 + return device;
283 + }
284 +
285 // Return statistics about this web server
286 obj.getStats = function () {
287 return {
@@ -1372,7 +1423,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
1423 // Remove the link and save the node to the database
1424 delete node.links[deluser._id];
1425 if (Object.keys(node.links).length == 0) { delete node.links; }
1375 - db.Set(node);
1426 + db.Set(obj.cleanDevice(node));
1427
1428 // Event the node change
1429 var event = { etype: 'node', userid: user._id, username: user.name, action: 'changenode', nodeid: node._id, domain: domain.id, msg: (command.rights == 0) ? ('Removed user device rights for ' + node.name) : ('Changed user device rights for ' + node.name), node: parent.CloneSafeNode(node) }
@@ -3081,7 +3132,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3132 // Update the database
3133 var oldname = node.host;
3134 node.host = amthost;
3084 - obj.db.Set(node);
3135 + obj.db.Set(obj.cleanDevice(node));
3136
3137 // Event the node change
3138 var event = { etype: 'node', action: 'changenode', nodeid: node._id, domain: domain.id, msg: 'Intel(R) AMT host change ' + node.name + ' from group ' + mesh.name + ': ' + oldname + ' to ' + amthost };
x.txt
+991 -335
@@ -1,339 +1,995 @@
1 -[ { _id: 'user//544849534953415445535453494431',
2 - type: 'user',
3 - name: 'LDAP User1',
4 - creation: 1555361291,
5 - login: 1555365153,
6 - domain: '',
7 - links: { 'mesh//2odhtyJSNw0$wApTgsGPZoF1h5XovNbN9KbetvIzMkAhXsPyFXFfW@Dnwp6BMhis': [Object] },
8 - siteadmin: 0,
9 - email: 'aa@bb.com' },
10 - { _id: 'user//a@a.com',
11 - creation: 1562625646,
12 - domain: '',
13 - email: 'a@a.com',
14 - emailVerified: true,
15 - hash: 'm9/LFPJ2HI/bXQdjBC1jGUF6ymLv3Zc0TClv34pEimRpWWtaslTu40qUXcBDRW4ImT8PCc+EMMsMen5VKfyDlk9hMIsERKVn06EMtT4XJZwqXStk2Pyx5qZy/wmE99bKsGOuXRaq3FXecEf+LK+fxfY4wEnCSQuKfSQll10cKcA=',
16 - name: 'a@a.com',
17 - passchange: 1562625646,
18 - salt: 'OOfnPUaVYtJ7vYGGitFpyMySKdJq8AVspq87B1JoKfrGnMcEGtXlrs7OXbpLDOeYrOcaWQcgjSjNlYLBR4pYTFn71aC2GqDrAUSETPQlBtsxxxT+FA0VJic+q8Fds7Ef1ku+1A//UsK3/smqVEC8qNCzw8CI6OkNLBSU/bMDsZY=',
19 - type: 'user',
20 - login: 1562625674 },
21 - { type: 'user',
22 - _id: 'user//aa',
1 +[
2 + {
3 + _id: 'mesh//1nT1F9umCUQq88oBRjsRrrZzlGKCV$f1M5TYFHdh5xNGbBkRr60tMMILFBHz9R8m',
4 + desc: 'aaaaaaAA',
5 + domain: '',
6 + links: {
7 + 'user//aa@aa%252Ecom': [Object],
8 + 'user//bb@bb%252Ecom': [Object]
9 + },
10 + mtype: '1',
11 + name: 'amtgroup',
12 + type: 'mesh',
13 + amt: { type: 0 },
14 + deleted: '2019-07-10T18:13:29.359Z'
15 + },
16 + {
17 + _id: 'mesh//2OkP5uyAD2cAT04SYAR557liKxAheZbv@wjb46pMFMuc9qnlkRsl0nJA65f2uf0U',
18 + desc: '',
19 + domain: '',
20 + links: { 'user//admin': [Object] },
21 + mtype: '2',
22 + name: 'aaa',
23 + type: 'mesh',
24 + deleted: '2019-07-01T21:48:57.460Z'
25 + },
26 + {
27 + type: 'mesh',
28 + _id: 'mesh//2YIhZVvKXOLdJuO7JntcGjfvXmXii85xkE$A9m3jB@93q9tydXKQPEkVqrby04kX',
29 name: 'aa',
24 - creation: 1585276083,
25 - domain: '',
26 - email: 'aa@aa.com',
27 - passchange: 1585276083,
28 - salt: 'AU9ir/d/tuEgGPn3noRhdsjF3BCAKpVHrG0nEE0/U6x0Sqa+Z9Mf4yRHhn1XYw0tRyX3TVDAD6iNmDGHgxukXRuCfPgog1YIkU+8xKrxy0MF97gkJA+4s9zWpXBUbrTCyo4UQkV2fpQ4SkyTi84cU7lP46nNUIu4kJoUiTHlZLw=',
29 - hash: 'V95ikU9NKh8jLxQJzc3qv1gOM4yK/cOasalrdTsoW2RUvrrWlt81UAy1NKrRFZx9zknYI1HbFtPuyZZyfFsDKtM7JuB4YL5nJeqqpFrPaqMsNw3GZ8tn2au+X4JxHlYeRF1Rrx90lbi7hrxfHHecBSU10reXiEMTLYg8uxpZILY=',
30 - links:
31 - { 'mesh//7b4b43cdad850135f36ab31124b52e47c167fba055ce800267a4dc89fe0e581c': [Object],
32 - 'ugrp//BXQUCOnHMBI14nGBhfTkvMlmb2K3FcP09Bu@3jpffr3nn@hxsm5RlpNLWheqQqYJ': [Object],
33 - 'ugrp//mKkqX0gLZ30jhPOs4cYdeCi5E@1P3OpypcAj1CKK14n04upXON36@5VE9BIez9h3': [Object],
34 - 'node//8wGlXgB8y@@Pe24vbVYUMoOxE2Si9eupK0gJ8wJW6GQCabaTYFmlHMjCyO3p0VEv': [Object] } },
35 - { _id: 'user//admin',
36 - type: 'user',
37 - name: 'admin',
38 - domain: '',
39 - creation: 1417814230,
40 - salt: '5cTXOdvnH0G5ThP0A2clL8+1zmdhhONqEo2t6cYBtLp27eRKCx6eEnONculOtTRd+bCO5795A2aDvWlFLhnxutNONmEc8aTDju+CiAq5f6gCzuZnIY3CA9Oc9fqOM4AZ8l7Bg/IT/7MKYMB0djeBTvJkJ1wkAAUh3nCRbfo2PC8=',
41 - hash: 'Pg7Hb/nA0S3HsacfuGbgRpxHsFchrMy1/XntdCwmqcwh/MvFecqggzZcDEmxhQ+mwjH2rnm+X2nbTxI9vDKgLndAjIDxY5eWN58lfRobniBV3I8zMmC/oQHf4YEPVTHMBxwU/s8MjbR38YjIICJdtkEAXHr4+NoAj8tsVIbQzWg=',
42 - siteadmin: 4294967295,
43 - links:
44 - { 'mesh//1bc82505ef750af28b19292eaf2260eae83bc2939a367f1a885efe865b729193': [Object],
45 - 'mesh//7b4b43cdad850135f36ab31124b52e47c167fba055ce800267a4dc89fe0e581c': [Object],
46 - 'mesh//93c713c5cda428bb06777a7e7cd8075527f8a2f305945ac241852b37b1f30739': [Object],
47 - 'mesh//acf0460d17df45ff977d2ceb3fcc84ced94a68bc67ef513bbdb1fc59a591bd5d': [Object],
48 - 'mesh//sjN2rO85LGJCEXxW50TUI1vOCr@9zVpE4A@9jrAcPjA7n531RHZVMGpksK1yWY4O': [Object],
49 - 'mesh//5LNNn8cM9vKaUFs91inT2SNpTXgp0mlmI6Q29kCFEmoypqxYDfjY5N7Ae3QxwIVO': [Object],
50 - 'ugrp//BXQUCOnHMBI14nGBhfTkvMlmb2K3FcP09Bu@3jpffr3nn@hxsm5RlpNLWheqQqYJ': [Object] },
51 - login: 1584903356,
52 - email: 'ysainthilaire@hotmail.com',
53 - emailVerified: true,
54 - passchange: 1584914891,
55 - pastlogin: 1584903334 },
56 - { type: 'user',
57 - _id: 'user//bb',
58 - name: 'bb',
59 - creation: 1584487582,
60 - domain: '',
61 - email: 'bb@bb.com',
62 - passchange: 1584487582,
63 - salt: 'mccoD17PKETFJ26DUPBpaMdBxQ64WpYgEnUFcHkkFY8E6+J3q74i6Eaj/DrAOwBlXcS0hzbjb1XbCTugoOrUQb2zB32H0Fv5VJjoRUwSu3kO7gYlRTX6V6Gw8vLgcZ6PcSAelL7+Km6Zd1pAx/aiG4iZ816q6L2R7rsg2p7n82A=',
64 - hash: 'CEBlvxFURwI9rGX6n5ucBi+Ukec2waPe++2khiLR1il7SXcUd+XnLVcY34w2t2rFrP0i8RCoC/tLgACko1h/SfIgFf4DWtnQSZ0x4U7YDm9o7go7yhmmbUMaNm+tGNGDTVDeVFBvoiTleE949sIJuOZ6iYHYVdW6VwkUTmy5/Hg=' },
65 - { _id: 'user//bob',
66 - type: 'user',
67 - name: 'bob',
68 - creation: 1523394756,
69 - domain: '',
70 - email: 'bob@bob.com',
71 - salt: '53GmyHZq0DyCEqX8ndsU8gnv/2QfmRb3F/a03Rorl+X/wH7mG5GvvYtXL4aS+NWsr43Mm4jFx38qTmQi961ufGy8RWEKjo3FsAPFq3fnYJvBpmWCDPz8svPe5UtU6yGi8SPUWQD3d5fb4FZ4Qub49agVG52lMAoI7+XPee1aodw=',
72 - hash: 'CtvD7IX3ytdJXmlbYEMRhSq0GuHVmis/a6qKGeJpb6MDvcB1MOPVuR3KMguPHxC2VQci0nkYosft/0V4RFxB1Y0OBCEo480Lprpce/TbJ1OvbUGxTpt0EJ3W8GFDrHW2MEyJlG0DTqrz5fM4cNS4zgYoM6XltEN4YYOcDvoeYFc=',
73 - login: 1578349086,
74 - links: { 'ugrp//BXQUCOnHMBI14nGBhfTkvMlmb2K3FcP09Bu@3jpffr3nn@hxsm5RlpNLWheqQqYJ': [Object] },
75 - siteadmin: 0,
76 - pastlogin: 1578349086 },
77 - { _id: 'user//bryan',
78 - type: 'user',
79 - name: 'Bryan',
80 - domain: '',
81 - creation: 1373413118,
82 - passtype: 1,
83 - salt: 'GoMdgNplNW5Tq1LI38Fi0Q==',
84 - hash: 'HSelSEKY8BJWdAV6D0PD4Gwiazg=',
85 - links: { 'mesh//542dea438e6065bffa9318c149e9982440dba4ce6ba3ba2b577e0e127b6a7f24': [Object] },
86 - siteadmin: 0,
87 - login: null,
88 - groups: [ 'test' ] },
89 - { type: 'user',
90 - _id: 'user//cc',
30 + mtype: '2',
31 + desc: '',
32 + domain: '',
33 + links: { 'user//admin': [Object] },
34 + deleted: 2020-03-17T22:02:47.403Z
35 + },
36 + {
37 + _id: 'mesh//2bSZVMA5xXrPy6195M0pOlblRFg3xjWCRH0OLPjuUXLLmgS9Y7n4RY3SX2sA1gWM',
38 + desc: 'This is a test group',
39 + domain: '',
40 + links: { 'user//admin': [Object] },
41 + mtype: 2,
42 + name: 'Test2',
43 + type: 'mesh',
44 + deleted: '2019-06-30T18:32:57.821Z'
45 + },
46 + {
47 + _id: 'mesh//2odhtyJSNw0$wApTgsGPZoF1h5XovNbN9KbetvIzMkAhXsPyFXFfW@Dnwp6BMhis',
48 + type: 'mesh',
49 + name: 'BobMesh',
50 + mtype: '2',
51 + desc: '',
52 + domain: '',
53 + links: { 'user//544849534953415445535453494431': [Object] }
54 + },
55 + {
56 + _id: 'mesh//4C415JpzhmNvKPxRHTVulYklJOR7z3qwqzSr9kHsJH0YZpjGrkePjRiHr$iEm8hd',
57 + desc: '',
58 + domain: '',
59 + links: { 'user//admin': [Object] },
60 + mtype: '2',
61 + name: 'aaa',
62 + type: 'mesh',
63 + deleted: '2019-07-23T22:38:49.356Z'
64 + },
65 + {
66 + _id: 'mesh//4c84kKt4qhoBn678LzXKipyT2kWlbuTyd9N4@T5UIXkII@eGrAPClzwfQQjUQ$g6',
67 + type: 'mesh',
68 + name: 'sdfsdf"sdfsdf',
69 + mtype: '2',
70 + desc: '',
71 + domain: '',
72 + links: { 'user//admin': [Object] },
73 + deleted: '2019-05-09T18:08:51.985Z'
74 + },
75 + {
76 + _id: 'mesh//4yUyexeTpWLkDdT2XI@9SnrRFlKJlmaBLz8Aaf1hdQZbRg$@usL$le@TTndFzurg',
77 + desc: 'This is a test group',
78 + domain: '',
79 + links: { 'user//admin': [Object] },
80 + mtype: 2,
81 + name: 'Test2',
82 + type: 'mesh',
83 + deleted: '2019-06-30T18:31:39.798Z'
84 + },
85 + {
86 + _id: 'mesh//542dea438e6065bffa9318c149e9982440dba4ce6ba3ba2b577e0e127b6a7f24',
87 + type: 'mesh',
88 + name: 'test',
89 + domain: '',
90 + mtype: 2,
91 + links: { 'user//bryan': [Object] }
92 + },
93 + {
94 + type: 'mesh',
95 + _id: 'mesh//5LNNn8cM9vKaUFs91inT2SNpTXgp0mlmI6Q29kCFEmoypqxYDfjY5N7Ae3QxwIVO',
96 + name: 'Work Computers',
97 + mtype: '2',
98 + desc: '',
99 + domain: '',
100 + links: { 'user//admin': [Object] }
101 + },
102 + {
103 + _id: 'mesh//5UF4BiTaWGSopa2pInUNU7hpts@omoNFEA5r4nMClg8wy79jH6yb4oB2YEt5qYDn',
104 + desc: 'This is a test group',
105 + domain: '',
106 + links: { 'user//admin': [Object] },
107 + mtype: 2,
108 + name: 'Test2',
109 + type: 'mesh',
110 + deleted: '2019-06-30T18:33:11.188Z'
111 + },
112 + {
113 + _id: 'mesh//5rU@REWdkn3fVkWFUNDFfoZrv19hjG7$yHraRwPypiN9VYJaeDK5vFdfwqjqujDx',
114 + desc: 'This is a test group',
115 + domain: '',
116 + links: { 'user//admin': [Object] },
117 + mtype: 2,
118 + name: 'Test2',
119 + type: 'mesh',
120 + deleted: '2019-06-30T18:32:09.805Z'
121 + },
122 + {
123 + _id: 'mesh//6A1ZZ4YTOPEN$r1iKHGVBmzS68Zz0NYdUTTksK7n8GlXAdiXlm0KbeQjsWUjubzo',
124 + desc: '',
125 + domain: '',
126 + links: { 'user//admin': [Object] },
127 + mtype: '2',
128 + name: 'dfgdfgdfg',
129 + type: 'mesh',
130 + deleted: '2019-05-29T21:11:18.792Z'
131 + },
132 + {
133 + type: 'mesh',
134 + _id: 'mesh//6l9CsR03CE9XA5QXZxWnIzIx7KseoAHb3VsBIXzdNW8u$9tTGAzfG6pnOCams6XV',
135 + name: 'WWW2',
136 + mtype: '2',
137 + desc: '',
138 + domain: '',
139 + links: { 'user//aa': [Object] },
140 + deleted: 2020-02-17T20:33:09.414Z
141 + },
142 + {
143 + _id: 'mesh//79HpL$WV$9xiKHknJ$RH6JoockNkHt$BcXflf18sNIrCLS$VHH8ZQh4NzZM6v0fb',
144 + desc: 'This is a test group',
145 + domain: '',
146 + links: { 'user//admin': [Object] },
147 + mtype: 2,
148 + name: 'Test2',
149 + type: 'mesh',
150 + deleted: '2019-06-30T18:33:01.352Z'
151 + },
152 + {
153 + _id: 'mesh//7VGEVFyruLf3yFIZ1QN6w8XH2gyEjOvI5NcoC02S0l88o$$ugtpyldP4sZmHuia5',
154 + type: 'mesh',
155 + name: 'sdfsdf',
156 + mtype: '2',
157 + desc: '',
158 + domain: '',
159 + links: {}
160 + },
161 + {
162 + _id: 'mesh//7b4b43cdad850135f36ab31124b52e47c167fba055ce800267a4dc89fe0e581c',
163 + type: 'mesh',
164 + name: 'Home Computers',
165 + domain: '',
166 + mtype: 2,
167 + links: {
168 + 'user//admin': [Object],
169 + 'ugrp//BXQUCOnHMBI14nGBhfTkvMlmb2K3FcP09Bu@3jpffr3nn@hxsm5RlpNLWheqQqYJ': [Object],
170 + 'user//bob': [Object]
171 + },
172 + desc: '',
173 + flags: 0,
174 + amt: { type: 3, cirasetup: 0 },
175 + consent: 0,
176 + invite: { codes: [Array], flags: 0 }
177 + },
178 + {
179 + _id: 'mesh//8O5l5HJZ0xA4ISVT13H3eFOykurvkrW0nUxQrElMq4fRkR9Nit0onKnRXfpgK45H',
180 + desc: '',
181 + domain: '',
182 + links: { 'user//admin': [Object] },
183 + mtype: '1',
184 + name: 'bbb',
185 + type: 'mesh',
186 + deleted: '2019-07-23T22:38:55.266Z'
187 + },
188 + {
189 + _id: 'mesh//8UZgdO0YobI56hbICoOoWTz1woF2Pw$gHp8gEANNNBr14gFrUOQKT@ilIKWYgK11',
190 + desc: '',
191 + domain: '',
192 + links: { 'user//admin': [Object] },
193 + mtype: '1',
194 + name: 'ggg',
195 + type: 'mesh',
196 + deleted: '2019-08-11T05:25:18.890Z'
197 + },
198 + {
199 + _id: 'mesh//994a35a3ffcc0b3968080ec73add4bdb5f1317152e7db0b0c3caf7144eb1556e',
200 + type: 'mesh',
201 + name: 'test',
202 + domain: '',
203 + mtype: 2,
204 + links: {}
205 + },
206 + {
207 + type: 'mesh',
208 + _id: 'mesh//9fJ3LpZXYPQN0Wd3CWoyZUeRntG9$70IYpL9PbcG8kYvoufviosNLnWcdAxzM@mq',
209 name: 'cc',
92 - email: 'cc@cc.com',
93 - creation: 1580415619,
94 - login: 1580415619,
95 - domain: '',
96 - salt: 'JKaqzhk6DQDmhPejyA8F60DZ/XuCAY6nHX+jDvIwHVuYOrZU45uYf1R1VJI0UXKGpt/uin3xfdWw/dtfhDyJETKlOb3xdHg52UVJnpkUBrxlumgI/KitDqhmZ7skoKwJmJ8lRn7aN8+j1DJlbhBN9OuhyU8gttzrzbMWhStOHRo=',
97 - hash: '6JpuKMQHg8FwS5PDA7yVqh2/NOlStVc7TGjLkP3ZO2ZqO4jFU8780UgdtEEGaRw8fHiby6gLqxLQZhzGb1cF5ormiH2HSI+n6TDET0GuTYYHnYNrSWXG+EZOEn/sOybqL1I7hXKUeI2bnewUtxRcml9oOifgDVuBbNRDoPrl7I8=',
98 - links: { 'mesh//qbu74CK7bX8AYu9gqZNGSad1poraKWlyay0yCLrx8jPZ@d6$ZQX0XcwMThPWqqRQ': [Object] } },
99 - { _id: 'user//dd',
100 - type: 'user',
101 - name: 'dd',
102 - email: 'dd@dd.com',
103 - creation: 1551389245,
104 - login: 1551389245,
105 - domain: '',
106 - passhint: '',
107 - salt: 'HiFDC9cDOxGKHIohkudzflVT8kNMD8Uy60Qt6/LIahJuBCIxcH3rPIqu/kEdo/+YyrMuHs83mudkvLHrsgCJXz4khqbI4owsJrAJ5UGuGaLbh08coGgzpMDjoDlSoxL3nF09+/ZsL3kPIn3jVxKQeepBgN+Vd5paOOGEy0n3z8o=',
108 - hash: '/ak7hzgp4zbPEjYTe7bvOtamDNsccm/oV1wdZ7DUc4M7AVpXSIiKKNfBCLXgfi5T4FcHs75VEvnCwYeZCbKAFYeN/d4TYOdnPM6fWgAGk//MCScdawbJrnB9fiVXOA6GYU/SyXbHxX2TaRprjKfhk+Zc0vPCauDpg3xzTzISMXo=' },
109 - { _id: 'user//demo',
110 - type: 'user',
111 - name: 'demo',
112 - domain: '',
113 - creation: 1428090949,
114 - salt: 'sGIIlqmi5YN8+BEBOYI2Ub+TGV0nAcE7UdM7itv80HGriQKtAeajer18WdJIsfEvXwEMjqftvEmNE1QLafb7edZ4LVTSe90+mluRxQ6na+GauoXIazTHCola+Ke3ySpedWuHvnKPrwQEWtTFDAp6UjppfwFtd8W6yAPyzYJwpfM=',
115 - hash: '0YfvLDm9NIMOHcbK9lQon+dH70vlQRnTW+b1BdQCBIcx4HyM6NpPeEs+nU6wqDk6nXwBp50OpBNmPLlCslpZAFg6R4sQzIJEcirb8GZnRaABDus8kq3Gq23DWp45j/uwQMAA6Z4orqXmr0OHEMB9Cr+p2jg+c01QTM2FU+TUvBc=',
116 - links: {},
117 - login: 1513299316,
118 - siteadmin: 0 },
119 - { _id: 'user//devbox\\default',
120 - type: 'user',
121 - name: 'DEVBOX\\Default',
122 - domain: '',
123 - sid: 'S-1-5-21-3031010259-3226202738-568380285-1001',
124 - creation: 1548377831,
125 - login: 1548377831 },
126 - { _id: 'user//eee',
127 - creation: 1561833844,
128 - domain: '',
129 - email: 'eee@eee.com',
130 - hash: 'ya2sbB16v1yiYcA/zS8glcrFZoB1uPpzu8kx5G0iELB87KDzMYr1M9WgecvYyhpYL27Qu+G1lM6w+cX1iHigUSB9stZRlBNy4r6go3IiZQqxIPQOwn5eWswgKqRXglAXfCp52b9WwcFLU31KklUZOadkSdGKk4b23ERhd8lMRkI=',
131 - name: 'eee',
132 - passchange: -1,
133 - salt: 'ispJqptip9UX3yaSL7911MCAf577tXC4BF3h2PPGYIQPY4qw4QCMUwPvpo1bnKQUgKBuHVnZRtuyC/1dk87aEnmOgyoZVIhb4KSV8lzTDS1JkgT29ukxwngqbEaDnkzbc9vxQVboWTqveK+FMHqy6qzIVHOirqgfjv6PF26wWeE=',
134 - type: 'user' },
135 - { _id: 'user//joe',
136 - type: 'user',
137 - name: 'joe',
138 - email: 'joe@intel.com',
139 - creation: 1551138573,
140 - login: 1551138573,
141 - domain: '',
142 - passhint: '',
143 - salt: 'z8lIYIkrHboKGo62rF5cyCfvHCrT2IQYpU6uufW5lMO0GWte+p8q9FEHct+xItY96azQmti8Cy/mczr5j53WPRtxnMtnf7DxI65GLJYrGqoQJ/InyNSYd0O4/r2tZlwn5hK8+/E8hi1MxuFBAGlC4guKAoS+W2x996POjgbqsu8=',
144 - hash: 'q0UZypM0R2sk+VKDSXR7ouCMR/EYnaESJtNApE7ZxhHAjhDCxQQdnmTrSTvhPtp2seM9IOCK9YFjMR52sNxBfqtD1F+E4GcyaCxTC6NntEIMizVz1kw+hPmweo6u7Lu1EliDymHtrkmFvpqhfIb9b7ISpb7wL6LPsn7sfN1/R1o=',
145 - groups: [ 'test' ] },
146 - { _id: 'user//joe.bob',
147 - type: 'user',
148 - name: 'joe.bob',
149 - email: 'bob@bob.com',
150 - creation: 1531530565,
151 - login: 1531534497,
152 - domain: '',
153 - passhint: 'bob',
154 - salt: '6P9m1LSHS+S1L7+HJO23pDBHn6eiZmAKXVckawjGNFPz8Py0zu6jDCcbP89lgnqLN8KjyWc7NO4dOPyL26QEkKOA2PghljDwjaWaCnX1EYkYDiJV3b4muHrQ0hVsdbYP/52gtRZAE5f0qM3xZjxfHz2dVyrRCFb+iNvCB/OiikQ=',
155 - hash: 'yMsV9ATYiOcVOAjaH8Gxc6+jM28JwxsK0+GaA6b6Y8kL871sENd8/5nqi0QWYRKKahkpFe+xAaTdze/+/7vXt3Ly/WJsU7q8asZgORxqxWU0wsekFP2tnAjdiC/Grhj5euAXqft84p5aQHQt2PE/CoT+FOIVvUiM5gD/Iq1ev1M=',
156 - links:
157 - { 'mesh//1fHXfQIiCOOOFw8lkIlUnXSQ3A75kFrKw2PvGQFkaAsGCM7mz@3$Mrr5NbPNTmxy': [Object],
158 - 'mesh//PleIaEpGvRNLCx6rLcsKOogtaKfEDI7Tm2YSPGUurBLqNzRgLPd4ZurifZonL$7X': [Object],
159 - 'mesh//8kWnSpFr$cIj2YvibBdMkBxBlcuNZp0yBZQSoWV12DTZV2f@34wJi5CIPMSUoOou': [Object],
160 - 'mesh//CWsMAU4u63zNLLvdmoZP8uPcg$lzLnVcC25buVmqI05r1Wxk3ngk1OEgyHoFg7Oa': [Object],
161 - 'mesh//Gt0Eo1GNpJmQ1WRwvKeIhibHBQ2j@XOV@omqmvsf8ZY6k3oKswvDdjzPn1KA4IQf': [Object],
162 - 'mesh//GXbvFkWNsVKJCBbTvhBHCgFAY5fayzcStTJeZ5TdDfLC0sDL5TDs1ALFm8hMFoQ9': [Object],
163 - 'mesh//7z0GW8pppHVGDw@Rz$fb1E29GnA9yExEKASjAf$r$hyBMP0$BSH$rVqWKCwxQ7D6': [Object],
164 - 'mesh//7b4b43cdad850135f36ab31124b52e47c167fba055ce800267a4dc89fe0e581c': [Object] } },
165 - { _id: 'user//mytestuser',
166 - type: 'user',
167 - name: 'MyTestUser',
168 - email: 'a@a.com',
169 - creation: 1541494376,
170 - login: 1541494376,
171 - domain: '',
172 - passhint: 'a',
173 - salt: '3bURHy0OVDLNGJrEyQGs2UBhktEoJao9p4dIPS+uZwWdzPCcCZr4r7/dWlsjFGyKqCoWoStR6XzIFGElAAW5eUq2dM7lG9GXvrp59TzizKwTUAJWyCTfCmoP2jbTBjFLr5umBNsapiBY1HXXJxoRpJJJDGCt0ysETgIYjJfWUN8=',
174 - hash: 'VzMdJ9paS12tH3KM3yUsVJXYt6tB/LJ8jX3665otE4AmQgaxBOXiEVr5Ff8oYd6MPonr6D93ACUems0R0NiX4EjGcOveT1zNijjaVYxFRu2PzkKayxqeupZQvniz6HdrtptEa96GpWXqXJ0dzsVbMcpfEKz1Tjk5cFku3swfZYw=' },
175 - { _id: 'user//null',
176 - type: 'user',
177 - name: 'Test User',
178 - creation: 1555017483,
179 - login: 1555017682,
180 - domain: '',
181 - links: { 'mesh//k0nAuG45xS5TSYR3s1kT1XGUonCM48sGbuf6D8dDlYFSbbHcxqGk2daZrVC4D@dg': [Object] } },
182 - { _id: 'user//ppp',
183 - type: 'user',
184 - name: 'ppp',
185 - creation: 1557712716,
186 - domain: '',
187 - siteadmin: 192,
188 - email: 'ppp@ppp.com',
189 - passchange: 1557712716,
190 - salt: 'M83AO69eUNCOUlHAoMMf9PoYits3d2+G5ml76VxS8Fve46TOwCK5pwHhCur3iKNDDOOz0/OrzrF1axyiB2kzQUQvs1DZgZlO+1F9DpTI7avibLYljRlrs1KBm7Bb910VYjQNNvKKLI+h7ls45s1wUFgWF2EngpECv9tq05UoX4M=',
191 - hash: 'RDR75KY2bypDWxJEgYznG+HjyCPR3GSJVI4bGtAu4C8XMvnB+4+2g47TKVb8nM9MpWj4/M4XWQ87VhJIMXoCQ5qg6SeWdIXL3ab1UpXSzn7fAeFspqrQ8A9ZcnfN+OARL2gLL8qSchonebVfL3BdDqTgc64pn1MhctQUvylsRYE=' },
192 - { _id: 'user//qqq',
193 - type: 'user',
194 - name: 'qqq',
195 - email: 'qqq@qqq.com',
196 - creation: 1549852967,
197 - login: 1549853132,
198 - domain: '',
199 - passhint: 'allq',
200 - salt: '+pzWoML4DMmYZ3y9DFMEwkJz/sal3qDKHKnhmVu352zzZPzXC+mL/hbmHOSi1Quw65tMMLtcjXn5cquMFToX1DlsURnuDbxaINuzZ9pec6dxIn26EJ8urZ00bVXTSusv2xhcJuYKEabC/gKWpe6E0VR8xctEUjjqAgP1BCOAifo=',
201 - hash: 'n7gXwzoFS9UkTHQbbuuabGjCJmRadzWENmkjwMBnNrhQwG2qLeD5f/A1EPKIwr2P39J0cClFHPt25kX0PtItEyJO5wcnVrbESfc3Jsm6nG+Kze0ayW3Na+iEmnwWMDZYNgFe3k95ubOXzKl/CCUjuW4RAEwj5f631XoTS6ygW1Y=',
202 - siteadmin: 32 },
203 - { _id: 'user//robert',
204 - type: 'user',
205 - name: 'Robert',
206 - email: 'robert@bob.com',
207 - creation: 1543864529,
208 - login: 1543864529,
209 - domain: '',
210 - passhint: 'robert',
211 - salt: '/brZFf8ljdG2eZAFgBl3CaMnY5FGYPB93S3Y97wym/kUAVkF5NHlDVVNfmghC97VzZuHnlIoFlt4IUHbZHSc4/KAOc4pX/ZcyicsacMXyW+4CtDgSllnXeejK0nkVV/AdJSwKMQZ3K5+77TvydXbwLFuGoZ0NVOzCto/CgaWtsQ=',
212 - hash: 'X7OlXcp514ay/HXV2qDsAQVerr2jWGdCUAVnl6FVsvw4XN+jgBsq8E7f0RnuAZp/BFIlqkLaj8TqYtpFPR87LCJdcg8LZ3Y7ygyiZp0rdpztyxBAJ3YyiFRrSvJB/u4JM0GJ88WPCRK6CbHwBlhg4i+VRSMPetn1XiemubK1Qv8=',
213 - links: {} },
214 - { _id: 'user//rrr',
215 - creation: 1561919781,
216 - domain: '',
217 - email: 'rrr@rrrt.com',
218 - hash: 'o85W/QlWhRXHrIeyw+L2TXWnW5MDr+Dc+66MeH58iCxKIh/aMuLdOD9on3ViNbW9Wqt4f7wKxjletFVhJYwmd/3VvPLBxdvZ4r3c4El9I49vGavCngqlaHc69ohh30KVEXUYy3zzxyOFn7HukSSkCMmnsq/IKIpA6ZVR95GNQ54=',
219 - name: 'rrr',
220 - passchange: 1561919781,
221 - salt: '1crF6xIQlbO2GYPRPksF7HUu1ytB9zJrDl6zd09OYFdDEQRuK+DhCLPJq5CTJU5Tg7GjVmIq/rXqGKQFlvTZ2/cLmELwN9l9UQeBsiyb7lxSusU3SRTCbYAZV4aPy97xHw+F1JlLtEaXSJ0TM1WwcBECW/qJ4ZeIDpQfNUw6HAY=',
222 - type: 'user' },
223 - { _id: 'user//sampleuser',
224 - creation: 1562012207,
225 - domain: '',
226 - hash: 'clVpJBetcpCd20KcvCJ4K1cCdodNIHSZW11tR/PzKnZDek0XjLCINucUK1wbXbsmqvE36AXPFDy0URSmJB3ohjkP02TDl3mDUGg+tmM+0Gh9CGTzImRG0xnPLoUtBo5QpRBItLUEz2wzzHn3Pds4fecAUSZUGH2K+icFBWG/2BU=',
227 - name: 'SampleUser',
228 - passchange: 1562012207,
229 - salt: 'XQ9F2M9E2kumUFxqxFv48UxDyhHQroBS46ud7e1iaDH1cGZ+V78YQ3fo58NjTn0XkiJmS1usxlu+qXQEbGSM5e8EAS3qK9rXdZ78CMm7+NEz8AoxkzpmAeICuIXikOP488eseXJYItZzbr3jOMjvKra+nw1kpeVRbW3R0XHVVtc=',
230 - type: 'user' },
231 - { _id: 'user//test',
232 - creation: 1562534252,
233 - domain: '',
234 - email: 'test@test.com',
235 - hash: 'FYtXnIWEW7fIrZSNwGx/Rl5Blsvqpl1LGs8exXWYrNJc3X6UzS7+qziti+i5M1m4yjiQLp5JzGuJkfdVDexua6y5Ixh15dEsoLSndE0QOSa+7Yo01FEy5LGuwGd6Rbs1yRsH4P4pGyMZhj5DsaYGLeNKiXgcMqjTKAhF0VGXxVs=',
236 - login: 1562534252,
210 + mtype: '2',
211 + desc: '',
212 + domain: '',
213 + links: {}
214 + },
215 + {
216 + type: 'mesh',
217 + _id: 'mesh//@QwIrlHUbhw7fpGjHbm7Ffuhrn3ryS4HMRdLil3@TSwCtRfl8HCQuY5XpO8Xk6m1',
218 + name: 'TestGroup',
219 + mtype: '2',
220 + desc: '',
221 + domain: '',
222 + links: { 'user//aa': [Object] },
223 + deleted: 2020-01-04T19:54:01.994Z
224 + },
225 + {
226 + _id: 'mesh//@wACAidb@xfR3gTWZTIa0@jOXXhUrdUslQ5VIysCkaO9IVdTnZtbjv34zX5EQEoL',
227 + desc: 'This is a test group',
228 + domain: '',
229 + links: { 'user//admin': [Object] },
230 + mtype: 2,
231 + name: 'Test2',
232 + type: 'mesh',
233 + deleted: '2019-06-30T18:32:26.573Z'
234 + },
235 + {
236 + _id: 'mesh//AU641@ugPqNEhqzpg7l5Sl4kJGHYFBYODj$aZ@sWZavl1sNUjnamatKc7gOheSW@',
237 + desc: 'This is a test group',
238 + domain: '',
239 + links: { 'user//admin': [Object] },
240 + mtype: 2,
241 + name: 'Test2',
242 + type: 'mesh',
243 + deleted: '2019-06-30T18:32:54.341Z'
244 + },
245 + {
246 + _id: 'mesh//Ad2wfUM4pFFgKgMPVCWHgdU7P9AFXQkCEZWZqpNyBjQv6XFUSOuSLNfUkzAMMMVd',
247 + desc: '',
248 + domain: '',
249 + links: { 'user//admin': [Object] },
250 + mtype: '2',
251 + name: 'TestGroup',
252 + type: 'mesh',
253 + deleted: 2020-03-03T09:36:08.723Z
254 + },
255 + {
256 + type: 'mesh',
257 + _id: 'mesh//BActeqzKb61ERfEMKeTtxiI96qYkCHS3HLxYXAJ9Th5Lpt6$uW4XxfZd0B5jkc3X',
258 + name: 'EmptyGroup',
259 + mtype: '2',
260 + desc: '',
261 + domain: '',
262 + links: { 'user//aa': [Object] },
263 + deleted: 2020-03-30T04:35:42.330Z
264 + },
265 + {
266 + _id: 'mesh//C9Ut6fQoghQ@Ydwp748Ojym7voL6IeO9xKlVXmk$@tcoESlU@a7xMYGl6SwF5FDG',
267 + desc: 'This is a test group',
268 + domain: '',
269 + links: { 'user//admin': [Object] },
270 + mtype: 2,
271 + name: 'Test2',
272 + type: 'mesh',
273 + deleted: '2019-06-30T18:32:42.294Z'
274 + },
275 + {
276 + _id: 'mesh//CLsX60$xid8nJztEsHO38Nn0VleBUSpPJ90j2D7VbjXIyVdOCfxWnv4nuK@ktVIG',
277 + desc: '',
278 + domain: '',
279 + links: { 'user//aa': [Object] },
280 + mtype: '2',
281 + name: 'test',
282 + type: 'mesh',
283 + deleted: '2019-06-13T18:30:10.117Z'
284 + },
285 + {
286 + _id: 'mesh//CUhrLCon9WQXx2OBd63DtWvwB3Q3IK2rXSLYP82k6@frimcmC$K9H6TT7JOFE4j2',
287 + desc: '',
288 + domain: '',
289 + links: { 'user//admin': [Object] },
290 + mtype: '2',
291 + name: 'aaaaa',
292 + type: 'mesh',
293 + deleted: '2019-05-29T21:03:11.442Z'
294 + },
295 + {
296 + type: 'mesh',
297 + _id: 'mesh//CtBlCeufIk5lqFf4$rcmW41t2wmLkv47cDhwO2iubH14T@jzU4v3CaxAnfyaqFNk',
298 + name: 'WWW',
299 + mtype: '2',
300 + desc: '',
301 + domain: '',
302 + links: { 'user//aa': [Object] },
303 + deleted: 2020-02-17T20:23:19.687Z
304 + },
305 + {
306 + _id: 'mesh//Dh5oAWb2IJU26dN6k0oHWQburpbkYkj1hFVtnY0Li7I$ayDT2DUrlmVXxtd7R7pj',
307 + desc: 'This is a test group',
308 + domain: '',
309 + links: { 'user//admin': [Object] },
310 + mtype: 2,
311 + name: 'Test2',
312 + type: 'mesh',
313 + deleted: '2019-06-30T18:33:14.380Z'
314 + },
315 + {
316 + _id: 'mesh//FkxCcX8odlaK5cy$V@p7YS$VIDLeiqYeODcJru@0q9FYzGdZ6SyU3MGwMyWorM@C',
317 + type: 'mesh',
318 + name: 'aa aaéésdfsdè',
319 + mtype: '2',
320 + desc: '',
321 + domain: '',
322 + links: { 'user//admin': [Object] },
323 + deleted: '2019-05-02T17:09:21.518Z'
324 + },
325 + {
326 + _id: 'mesh//G1Vh3vGcAiQ2UhLDD8rK7Abve6kXW3lPRubkNxmHCAA0rZd@YMv5Go$n9dpGp2M4',
327 + type: 'mesh',
328 + name: 'TestMesh',
329 + mtype: '2',
330 + desc: '',
331 + domain: '',
332 + links: {}
333 + },
334 + {
335 + _id: 'mesh//G2ynbR7sCxtMdSost6ovav4OzGeY6MJdEwHJ5miVp64wzgGkRskj@hJy7tfr6TCn',
336 + desc: '',
337 + domain: '',
338 + links: { 'user//aa': [Object] },
339 + mtype: '2',
340 name: 'test',
238 - salt: 'Kj1I+Xf9Bh+3uMNpH/LNzmonk/+kOjaW2rRKEFAolqQ1ngELtkqeEipBESGUNvNDblx8kTiNIIFda9e4fdAxZlHuX/AAIiBpw2saS5zYUPtmFnoBom2PTIzurHNYYXBz8vS3VCcTFv3ZbW3tg38jYX8z5h6blNzgwI51GkgDOP4=',
239 - type: 'user' },
240 - { _id: 'user//test.user',
241 - creation: 1558462786,
242 - domain: '',
243 - email: 'test.user@user.com',
244 - hash: 'RVL0gdctx/WMMlrRkflAMURL7UxN4c1jos6/ZzVSAcTXbOozfWJeE5JzCZQFNnze0OTSltq1WQtRk5dJFhum8KhKkUGe/dVvC+u4qPs27RmzNdc3rNLKDLPXKyPqe0008e0pkjPiEYBZAVj9Cy8r4Aew5mrgpx4/fBIhzGz/6bo=',
245 - login: 1558462857,
246 - name: 'test.user',
247 - salt: 'hH8ABQQ0srookeRbjIcl5uDz7tDYZYotaPTgTQVaoPuXNwBdXJanrfPtIfPSuruZTUeEP5/2kWgEakfMO/on09iZgcuLCSvS4nySNZZuZ7VbApgmsqfNAtPOULrHMuZchsBtCvUwiyTAOKyXmUNDD8txnmlfZmyCnqF49nc0DnU=',
248 - siteadmin: 0,
249 - type: 'user',
250 - links: { 'mesh//MAIhngk0XrQaFqDWpvBBrLnGwQWUTKQ6Aa8UMNFVJ9dmtZoAEkZF1DAMKsTHQbXt': [Object] },
251 - otphkeys: [ [Object] ],
252 - otpkeys: { keys: [Object] },
253 - passchange: 1558473367 },
254 - { _id: 'user//testuser',
255 - type: 'user',
256 - name: 'TestUser',
257 - creation: 1523658499,
258 - domain: '',
259 - email: 'testuser@meshcentral.com',
260 - salt: 'KsM9DOWsz3Ub8Q1m5ex/Ge7XP6fBJ+MMA8LqjXmSRhLE0HWfv4uWAarWjZYYYM4/kWKZZSjkQWMMzCeZul3krBTogZRqMUar+VgKgZbjW0vX6NvMFn32Y2m+K/YSyl0XQoN09nmU5EN/RA95bkTz3RK/pXsOYVNdCcojs1uISj0=',
261 - hash: 'uMO6etn7jwT1BBFqIY+DSqozcMIlpIAu9d4ruhxNmu/5smo/8M7Pvwa42tCza0bNsBNybPB6xOEYa4z+2W30WQ2dnN1AaHvRltdllxrPjmW0PjuD/4cNG+Z6Lb3v6R6QIUxYpUwo7gC87rM4+KyGiMFUq83VG67T4AcBxtKhzm4=',
262 - siteadmin: 32,
263 - login: null,
264 - links: {} },
265 - { _id: 'user//x1',
266 - type: 'user',
267 - name: 'x1',
268 - creation: 1557869247,
269 - domain: '',
270 - siteadmin: 192,
271 - email: 'x1@x',
272 - passchange: 1557869247,
273 - salt: 'X3E7xiTou1fRcRr+Rf5xBnCd6M7RtKishIjZyu+dm5KayLm6D/CCFkR9zuTyxqzuw4NZlp994jCvegryqBow0Db8sstcs/Vp8A2l4WUGcaNW6Yy9zVomJZE9xHuqRlUUU1J8SIlnrBrpcu3nXp4LRI3UOLroGSLbO9ojzYHnn/g=',
274 - hash: 'sc3wb1cP/R4lngyKmI4rqK1nXM4RCa+ZQmhbF48E6D8GejAynmR1kgTTGAqS22CPcTMdHmsxy+nZh0Pncmv5Z9HbxyGhrgFwkeIUYxrq7AO6A0w1dEIG99Qk/Pa3AZO0w917kUFSS7Dz94ZAouskm/F84lynUqSSolTqgpVCkJE=' },
275 - { _id: 'user//x2',
276 - type: 'user',
277 - name: 'x2',
278 - creation: 1557869247,
279 - domain: '',
280 - siteadmin: 192,
281 - email: 'x2@x',
282 - passchange: -1,
283 - salt: 'DFp2VFHhVfSpaqglMTLNpcsbARAqAx4uVb4j9V6az3tSrArGd7MSwQHpA69Jq91PZtw/dkqci3lkq9u74u7PSAttsA5z9IenGiTNGDBCSv5eDqGVHZdTWfcNw7CJM86shJ9NL1OEJR3owLnZFPir3f4ZeOV+GmuRhBLv5NFvBEA=',
284 - hash: 'bQLaZ36j4QuUJnvtbs84qdfTHWn40sL3Qndv3Pn8GtAUy2zgJdx6LGEhPKOyfizONibD2D2kH9SFqFGUDoZX+tQWwao4HRqY9spp6DtvqZu8rza2JR0Kyx0WbfjRtR6yW5TnvQC+xHd/aaSFmefPK/lxViUrGyzvbBM4e455xts=' },
285 - { type: 'user',
286 - _id: 'user//zz',
287 - name: 'zz',
288 - creation: 1577396990,
289 - domain: '',
290 - email: 'zz@zz.vcom',
291 - passchange: 1577396990,
292 - salt: 'KHt8U1w8t/50xXo+9zk5Hra8ypSIuR7fntQRfyg5dvq8TWohl7NP5fYQX+AEvnrsP9lhbYghBV6c68UgiIdUOje0rZh6XA/oHiHmfUzANALZeNp16Czrhb5k8bAFKI7is4A5Hw1sViA3cOgnNO4GhZqM1vmNgE0YuJPnVL1+y9Q=',
293 - hash: 'Ng6aEiTYGuPXG+BfJ2mt3cSJzM3iZslOo/hoX5w/CdRux3gqFkQTzwyHagJCozWHi0hq2omV+O9hzJlPZUU1Er9n7s9Yn0ssVJbT7un93n33gqaKwf2PivMMHMMKNZb7gtkgFwOIiQOSKHPN/eNs29rTixWPqr6JyMByXygvOZ8=' },
294 - { _id: 'user/customer1/admin',
295 - type: 'user',
296 - name: 'admin',
297 - email: 'admin@admin.com',
298 - creation: 1554414308,
299 - login: 1559319199,
300 - domain: 'customer1',
301 - siteadmin: 4294967295,
302 - salt: 'qqjKAHNRtdwcGlRUmlb67dXL8cjR8kur5Mu5j0i0HPqVkCO/oDpyl/xHFMDRt2U4VRT8v5XaD/GDeqYDpA+h6Wy3cJiENpElQx49WKRFlfgyO6t26wSUXFQd5jDjr/XijnktR5LALXRbwCkozbFoyot4uRneXu44OxrSdDDRHaI=',
303 - hash: '32JbzlVq9ge7o/6Qn4ii/a/oYWJRaXmDi/pVtRjPCZAFiR8bBu3gkY2JrimyMAOvkfwQJkrBNZRrDjB2BjvzWofy6BdCMzkhdnYpJ2kbeL16Nz3qqI3IauXI9E5SbYyG5DCo5ERCA75CGGexLH9vaVl8hT5K0N6sgDS/dAGT7u4=',
304 - links: { 'mesh/customer1/EaSw1hJBKjf1QApmilFSAIo1KhA@R@dgRHIDAUUZBaMBGEYJw9qlhOa7p0xfWZvN': [Object] } },
305 - { _id: 'user/devtest/a',
306 - type: 'user',
307 - name: 'a',
308 - email: 'ylian.saint-hilaire@intel.com',
309 - creation: 1514930104,
310 - login: 1515724646,
311 - domain: 'devtest',
312 - passhint: 'a',
313 - siteadmin: 4294967295,
314 - salt: 'g4aZeKUV0aPjzW8YpALfO7SYcyY03vdJVGNSowLqOlWZrFmnActIo+AvDb7ydC+DpSCWBq5fTHBj4Eol++PXeqyjcbVAKfMoZzGA6gdqNJ+UgabpzcddGm3oYEWcuEbvIzlLXSkZA+2LeXwRM9LbiRwH/dY0TrHVO2pwg8Hc3NU=',
315 - hash: '1+l9Wi2xEmoKNEH1jNkQGfI+F1gSId/SL7qAjxfe/lu5QvoFE4X9d3kajaC2GtWn73ilB5qmThOFqbL3nqut84EgHDmGWlxEJfGFytZwN0JlJSrid9OSKbfvS1E4P6jPWnbOLyiiKMWYktFwX2aNHRJZktrwcx07xpNuK7T5zFw=',
316 - links: { 'mesh/devtest/8CvC1wI7ivS289DcIUcMwXivGD2nKuj5jpUQ0qBd5Xd@R@jGkKSAA24A6UA9YRTe': [Object] },
317 - emailVerified: true },
318 - { _id: 'user/devtest/aa',
319 - type: 'user',
341 + type: 'mesh',
342 + deleted: '2019-06-13T16:41:09.959Z'
343 + },
344 + {
345 + _id: 'mesh//GDW3aA7h@nyoBA1MTstPyN$16Vc$2FwVo1IQdY0tllOEhTyKGMcPhdoUkrNevQnq',
346 + desc: '',
347 + domain: '',
348 + links: { 'user//admin': [Object], 'user//aa@aa%252Ecom': [Object] },
349 + mtype: '2',
350 + name: 'aa',
351 + type: 'mesh',
352 + deleted: '2019-07-10T18:46:52.131Z'
353 + },
354 + {
355 + _id: 'mesh//GKYE@sZBXl9pBInqbmryf4RkbbKRMd22ZH03Pk6CN2a6u$p@NyYp9o3imQpGkPg4',
356 + desc: '',
357 + domain: '',
358 + links: { 'user//aa': [Object] },
359 + mtype: '2',
360 + name: 'dfgdrg',
361 + type: 'mesh',
362 + deleted: '2019-06-13T18:39:02.080Z'
363 + },
364 + {
365 + _id: 'mesh//JPa9BaHb7vGmyjtup0vyTM9AGmEfxwScnHHImXubbcxjgoweCJfQWveOfCtKjrmq',
366 + desc: '',
367 + domain: '',
368 + links: { 'user//aa': [Object] },
369 + mtype: '2',
370 + name: 'fhfghfgh',
371 + type: 'mesh',
372 + deleted: '2019-06-13T18:45:53.687Z'
373 + },
374 + {
375 + _id: 'mesh//JSNfWVW5Za7nxJSAiJEvL9qcPlNPlBFH2HOuTZC8ZwWBPWikcoC9hfIv6ozpKKXx',
376 + domain: '',
377 + links: { 'user//admin': [Object] },
378 + mtype: 2,
379 + name: 'Test',
380 + type: 'mesh',
381 + deleted: '2019-06-30T17:58:50.488Z'
382 + },
383 + {
384 + _id: 'mesh//K66E4fuaqbkxCPX4eattxrbTq0FAbNG9FOQWJDSK@h8OYNKE9Oo5iXqFlctBwzKO',
385 + desc: 'This is a test group',
386 + domain: '',
387 + links: { 'user//admin': [Object] },
388 + mtype: 2,
389 + name: 'Test2',
390 + type: 'mesh',
391 + deleted: '2019-06-30T18:32:50.837Z'
392 + },
393 + {
394 + _id: 'mesh//KAdLqF2vI6UfQ0X2HiRTeVe6zMWLKmlPDO4ux0eMVX8b5Tya6It4worhwPcy1ktd',
395 + desc: 'This is a test group',
396 + domain: '',
397 + links: { 'user//admin': [Object] },
398 + mtype: 2,
399 + name: 'Test2',
400 + type: 'mesh',
401 + deleted: '2019-06-30T18:33:04.685Z'
402 + },
403 + {
404 + _id: 'mesh//KtcSF0INUTvERlBamfuIqEUR6da98oFkVcv6cOtIRwynydyS6yQPxXHHqmXu1J$j',
405 + desc: '',
406 + domain: '',
407 + links: { 'user//aa': [Object] },
408 + mtype: '2',
409 + name: 'fgdfg',
410 + type: 'mesh',
411 + deleted: '2019-06-13T18:39:16.063Z'
412 + },
413 + {
414 + _id: 'mesh//LH9tQ$WpSzaXTsRp5kpHziKVnNy2YU8W9nKWgAzDRW1nG9YxIEQ4NH8yA6sALpmP',
415 + desc: 'This is a test group',
416 + domain: '',
417 + links: { 'user//admin': [Object] },
418 + mtype: 2,
419 + name: 'Test2',
420 + type: 'mesh',
421 + deleted: '2019-06-30T18:32:19.773Z'
422 + },
423 + {
424 + _id: 'mesh//LheIB5zlyPuG4x@QY0Nw3B6FHlFpxEqLKn80coBqlhfJqm35YQK9dQnuxISq6UiW',
425 + desc: 'This is a test group',
426 + domain: '',
427 + links: { 'user//admin': [Object] },
428 + mtype: 2,
429 + name: 'Test2',
430 + type: 'mesh',
431 + deleted: '2019-06-30T18:00:07.131Z'
432 + },
433 + {
434 + _id: 'mesh//MAIhngk0XrQaFqDWpvBBrLnGwQWUTKQ6Aa8UMNFVJ9dmtZoAEkZF1DAMKsTHQbXt',
435 + desc: '',
436 + domain: '',
437 + links: { 'user//test%252Euser': [Object] },
438 + mtype: '2',
439 + name: 'TestGroup',
440 + type: 'mesh'
441 + },
442 + {
443 + _id: 'mesh//MV6ELYho$zDTFT7IanxDNxMPHUru8BUIUZ9rORUOntbymFdurXEP1DazAxE@19P8',
444 + desc: '',
445 + domain: '',
446 + links: { 'user//aa': [Object] },
447 + mtype: '2',
448 + name: 'ttt',
449 + type: 'mesh',
450 + deleted: '2019-06-13T18:28:36.457Z'
451 + },
452 + {
453 + _id: 'mesh//PK23hIc1v@yCKz@J2TH3d2e12psaUAlbW6gTGDMGxMqMj$CCus3dt5YgS0vgzP7n',
454 + desc: '',
455 + domain: '',
456 + links: { 'user//aa': [Object] },
457 + mtype: '2',
458 + name: 'fghfgh',
459 + type: 'mesh',
460 + deleted: '2019-06-13T18:35:37.434Z'
461 + },
462 + {
463 + _id: 'mesh//PQ9HA6ii4vjcuxRLndAmaxWKaTHe3J8XtdA31JCxbYoTbkXiGyiBY9$2ByulQ7hG',
464 + desc: 'This is a test group',
465 + domain: '',
466 + links: { 'user//admin': [Object] },
467 + mtype: 2,
468 + name: 'Test2',
469 + type: 'mesh',
470 + deleted: '2019-06-30T18:32:16.493Z'
471 + },
472 + {
473 + _id: 'mesh//SyR1rSzOthKzK@LB$deX9Ya58YMlznHnH78xcZRBwFTNwBVkTdyx8W7zTErnEY6r',
474 + desc: '',
475 + domain: '',
476 + links: { 'user//aa': [Object] },
477 + mtype: '2',
478 + name: 'dgdfg',
479 + type: 'mesh',
480 + deleted: '2019-06-13T18:50:31.416Z'
481 + },
482 + {
483 + _id: 'mesh//UE0kxwDwTXkSUtSvrF8W24iOkO@dRUOU5LMtPKA@powM68T7omPqSJM6gSXqLDKq',
484 + type: 'mesh',
485 + name: 'MyHomeComputers',
486 + mtype: '2',
487 + desc: '',
488 + domain: '',
489 + links: {}
490 + },
491 + {
492 + _id: 'mesh//VkMh@0s3wcwcnxd$3w4vz6KcLP4itEFIcYzdooBOnac2dvxnUnnsED7FD1aMGHKj',
493 + desc: 'This is a test group',
494 + domain: '',
495 + links: { 'user//admin': [Object] },
496 + mtype: 2,
497 + name: 'Test2',
498 + type: 'mesh',
499 + deleted: '2019-06-30T18:32:30.725Z'
500 + },
501 + {
502 + _id: 'mesh//WHrRPPKj$zUrXhhXoWen4O0rXeEy9ybek0uIR1iRC$cjx1e033hPmiUiylrVnmmG',
503 + desc: 'This is a test group',
504 + domain: '',
505 + links: { 'user//admin': [Object] },
506 + mtype: 2,
507 + name: 'Test2',
508 + type: 'mesh',
509 + deleted: '2019-06-30T18:31:43.350Z'
510 + },
511 + {
512 + _id: 'mesh//X3ezWI0MxKUQ2sdhVmamjpDoLyq1uIoL6PJ5Io487vmmo3ShaFSZZkRkhj0VTx3e',
513 + desc: 'This is a test group',
514 + domain: '',
515 + links: { 'user//admin': [Object] },
516 + mtype: 2,
517 + name: 'Test2',
518 + type: 'mesh',
519 + deleted: '2019-06-30T18:00:17.738Z'
520 + },
521 + {
522 + _id: 'mesh//XI@clIvl12q92Cz@P0IVJVmdx$k5JeOMqUJEpYlkZmRM5m3suE5fGL6XiObzYxo8',
523 + desc: '',
524 + domain: '',
525 + links: {
526 + 'user//bb@bb%252Ecom': [Object],
527 + 'user//aa@aa%252Ecom': [Object]
528 + },
529 + mtype: '2',
530 + name: 'test2',
531 + type: 'mesh'
532 + },
533 + {
534 + _id: 'mesh//YKkeiKbosBwHrIMoDi3iKMSbbhYjWD9S4bxZpjs1e6YXwrGYdAB4fnz9BTuIR7zI',
535 + desc: '',
536 + domain: '',
537 + links: { 'user//aa': [Object] },
538 + mtype: '2',
539 + name: 'dtyfgh',
540 + type: 'mesh',
541 + deleted: '2019-06-13T18:36:40.609Z'
542 + },
543 + {
544 + _id: 'mesh//ZjNv$HFbB$UMTOkn98AaLAw7AdkB4xs$c5o@mXCp541kvhsGqkKJFuqcVc36Z@Lc',
545 + desc: '',
546 + domain: '',
547 + links: { 'user//aa@aa%252Ecom': [Object] },
548 + mtype: '2',
549 + name: 'aaaa',
550 + type: 'mesh'
551 + },
552 + {
553 + type: 'mesh',
554 + _id: 'mesh//Zo9J@NlnHqHH72m7Zy80nk9Xkzpps2GnAkB1YzrWsC3kVns84MxoVnxalfDAPbFk',
555 + name: 'aaa',
556 + mtype: '2',
557 + desc: '',
558 + domain: '',
559 + links: { 'user//admin': [Object] },
560 + deleted: 2020-03-27T06:11:28.612Z
561 + },
562 + {
563 + type: 'mesh',
564 + _id: 'mesh//Zy2qF6OXaVFZh2Ma6k5Ki@KH1gg4q$21xVG4JT4VP9ofnfodNpCzJq@Hf9SLA@YT',
565 + name: 'aa',
566 + mtype: '1',
567 + desc: '',
568 + domain: '',
569 + links: { 'user//admin': [Object] },
570 + deleted: 2020-03-17T22:06:29.970Z
571 + },
572 + {
573 + _id: 'mesh//a00iAbHPyoCsvhkm8vALBIJa5lgeCIaSAy9b2DGto4qChhmhZlV2kXByWIsD95lz',
574 + desc: '',
575 + domain: '',
576 + links: { 'user//admin': [Object] },
577 + mtype: '2',
578 + name: 'sdgsdfgsdf',
579 + type: 'mesh',
580 + flags: 0,
581 + deleted: '2019-06-27T04:10:43.925Z'
582 + },
583 + {
584 + _id: 'mesh//aQGkKXyn@AD21B8Ac76EOYxH2V444cYNJToNBwlpQJJjR1YDZm9f5Iz@17fzh9mG',
585 + desc: 'This is a test group',
586 + domain: '',
587 + links: { 'user//admin': [Object] },
588 + mtype: 2,
589 + name: 'Test2',
590 + type: 'mesh',
591 + deleted: '2019-06-30T18:32:06.638Z'
592 + },
593 + {
594 + _id: 'mesh//aVeF0qqu$ufOJVkcersHniOvyki6n2yDe1n3$jDWKoHFSVom$toVBHU578NfygQv',
595 + type: 'mesh',
596 + name: 'aaa',
597 + mtype: '2',
598 + desc: '',
599 + domain: '',
600 + links: {}
601 + },
602 + {
603 + _id: 'mesh//aih6BvMKJH416FRCfiE2qBodgALsDWrU0MlfKbGLvUBxH4h9rYOfM8Bymqy0s2zb',
604 + type: 'mesh',
605 + name: 'sasad',
606 + mtype: '2',
607 + desc: '',
608 + domain: '',
609 + links: {}
610 + },
611 + {
612 + _id: 'mesh//axqD2Pl5AXV6sHcg1SpCpLuZ4PgjXS7oA@97SopnFmf3xuHkZUs4fe@a20ftM$U4',
613 + desc: '',
614 + domain: '',
615 + links: {},
616 + mtype: '2',
617 + name: 'bb',
618 + type: 'mesh'
619 + },
620 + {
621 + _id: 'mesh//b1nHwHfYeNz8K2m11N8$cM3PDuONs02VP018tKQkNoaaT6gPaURU$jXQd1HB4@19',
622 + desc: 'This is a test group',
623 + domain: '',
624 + links: { 'user//admin': [Object] },
625 + mtype: 2,
626 + name: 'Test2',
627 + type: 'mesh',
628 + deleted: '2019-06-30T18:31:48.965Z'
629 + },
630 + {
631 + _id: 'mesh//c8x1VGVfK0@Pm7Gv7x4tJE1@YNcoHXrheEiT4wQHU0OX8AjUeNyCmzHd0d@MiVep',
632 + type: 'mesh',
633 + name: 'asdas',
634 + mtype: '2',
635 + desc: '',
636 + domain: '',
637 + links: { 'user//544849534953415445535453494431': [Object] },
638 + deleted: '2019-04-15T20:43:18.785Z'
639 + },
640 + {
641 + _id: 'mesh//cOWpqJJTfMgF@HeRQ40gE@QVLeVaIrqhsPpShGhE6zy4pZN78NtY36Lf39lsOUI2',
642 + desc: '',
643 + domain: '',
644 + links: { 'user//admin': [Object] },
645 + mtype: '2',
646 + name: 'aaa',
647 + type: 'mesh',
648 + deleted: '2019-05-21T01:00:53.017Z'
649 + },
650 + {
651 + _id: 'mesh//cZ09EsXsIdP6aaz26CYyQOyWvRp$3Lwqjfps8$q6AIohLdG6uGPOkcyincZ1yGv7',
652 + desc: '',
653 + domain: '',
654 + links: { 'user//admin': [Object] },
655 + mtype: '2',
656 + name: 'aaa',
657 + type: 'mesh',
658 + deleted: '2019-07-30T00:52:04.033Z'
659 + },
660 + {
661 + _id: 'mesh//dIRtTn2m7uLfBab5JBsnYrK$ArDQslyyIy9qSXJez4V1F8ypVuSyeBspv4XsUsCM',
662 + desc: 'This is a test group',
663 + domain: '',
664 + links: { 'user//admin': [Object] },
665 + mtype: 2,
666 + name: 'Test2',
667 + type: 'mesh',
668 + deleted: '2019-06-30T18:32:03.566Z'
669 + },
670 + {
671 + _id: 'mesh//djVRwU1lkiQcmk6bJSognPRWeVHVoBoH7yrkB6rSN1ErOvmF2jXiBJiShZGCeS7h',
672 + desc: 'This is a test group',
673 + domain: '',
674 + links: { 'user//admin': [Object] },
675 + mtype: 1,
676 + name: 'Test2',
677 + type: 'mesh',
678 + deleted: '2019-06-30T17:59:34.828Z'
679 + },
680 + {
681 + _id: 'mesh//dmvW6jnugf7MCMXiASaIWYV@v4GKGhk1l2hV@fXhAfIKCy3mtInOMxVNjHRNm6uh',
682 + type: 'mesh',
683 + name: 'ASASD',
684 + mtype: '2',
685 + desc: '',
686 + domain: '',
687 + links: { 'user//544849534953415445535453494431': [Object] },
688 + deleted: '2019-04-15T20:43:12.938Z'
689 + },
690 + {
691 + _id: 'mesh//eW69RSAS4XmJQcMieSInPCcY54bZuZsdohjiWyIRke4lLd9mpY9cJ0iTb9nj9Z2C',
692 + desc: 'asdfsdfsdf',
693 + domain: '',
694 + links: { 'user//admin': [Object], 'user//aa@aa%252Ecom': [Object] },
695 + mtype: '2',
696 + name: 'test1aaaasa1',
697 + type: 'mesh',
698 + flags: 0,
699 + consent: 0,
700 + deleted: '2019-07-10T19:58:13.320Z'
701 + },
702 + {
703 + _id: 'mesh//h7@@QWI29t$eFctBPvL2ze3Eqx7aLP6kXUymj6R$0gzxQXdkr8aGt2bqslnUUMZn',
704 + desc: '',
705 + domain: '',
706 + links: { 'user//aa': [Object] },
707 + mtype: '2',
708 + name: 'fff',
709 + type: 'mesh',
710 + deleted: '2019-06-13T18:50:01.968Z'
711 + },
712 + {
713 + type: 'mesh',
714 + _id: 'mesh//hIhxjWwNTReuaUhR@6IIsMFY5fu1OvYS8wHZNGxQbe90wbS2aZUFX71nTkQ88$3U',
715 + name: 'dd',
716 + mtype: '2',
717 + desc: '',
718 + domain: '',
719 + links: {}
720 + },
721 + {
722 + _id: 'mesh//hgGjAZ9eDzdwXQ9v3yoyhhO9TxpzB2IdzJxGbMbqzVIfImpfdUvFBclQyX@1HY7R',
723 + desc: '',
724 + domain: '',
725 + links: { 'user//admin': [Object] },
726 + mtype: '2',
727 + name: 'fsdfsdf',
728 + type: 'mesh',
729 + deleted: '2019-05-29T21:21:50.727Z'
730 + },
731 + {
732 + _id: 'mesh//iAbpzOtIV5MJ1mUh5HzVilFS8Ff1e0xWJp2g0hIDFXzEJMyTpDW2RuViwZv64KC$',
733 + type: 'mesh',
734 + name: 'aaa',
735 + mtype: '2',
736 + desc: '',
737 + domain: '',
738 + links: { 'user//544849534953415445535453494431': [Object] },
739 + deleted: '2019-04-15T20:43:02.266Z'
740 + },
741 + {
742 + type: 'mesh',
743 + _id: 'mesh//iDiRbzDo8eWizCFZIqq5W8IkCZgViecfUHF21KxePbUc81jwQfNSmYezMZ4WYPam',
744 + name: 'cccccc',
745 + mtype: '2',
746 + desc: '',
747 + domain: '',
748 + links: {}
749 + },
750 + {
751 + _id: 'mesh//ijfCkuHkbsZElOco$xtsB$zH7OHRJlPQPtO1vVUEZgiTQCeyDwG65rcvug2ktRAu',
752 + desc: 'This is a test group',
753 + domain: '',
754 + links: { 'user//admin': [Object] },
755 + mtype: 2,
756 + name: 'Test2',
757 + type: 'mesh',
758 + deleted: '2019-06-30T18:31:52.141Z'
759 + },
760 + {
761 + _id: 'mesh//jPYYvcyux0kR2agaD5IdhDefx490ujk2h96NjXbE3$Egu$GXMwHLu6pTyTFmvrR3',
762 + desc: 'This is a test group',
763 + domain: '',
764 + links: { 'user//admin': [Object] },
765 + mtype: 2,
766 + name: 'Test2',
767 + type: 'mesh',
768 + deleted: '2019-06-30T18:33:07.949Z'
769 + },
770 + {
771 + _id: 'mesh//jQ93CqdC1rVXELk9gn1mT45Oj7yzpMk0RgxWZM809JoIjXeTxudZ0sKtwXCTvmCT',
772 + desc: '',
773 + domain: '',
774 + links: { 'user//aa': [Object] },
775 + mtype: '2',
776 + name: 'fgdfgdfg',
777 + type: 'mesh',
778 + deleted: '2019-06-13T18:49:05.563Z'
779 + },
780 + {
781 + _id: 'mesh//jmkdpl7BiUY2CtWXaOlfT0MgNaM3WC2Mp17O1cM0aV3ONbvyWJ1AyyjIgyXYtK$L',
782 + desc: 'This is a test group',
783 + domain: '',
784 + links: { 'user//admin': [Object] },
785 + mtype: 2,
786 + name: 'Test2',
787 + type: 'mesh',
788 + deleted: '2019-06-30T18:33:17.644Z'
789 + },
790 + {
791 + _id: 'mesh//k0nAuG45xS5TSYR3s1kT1XGUonCM48sGbuf6D8dDlYFSbbHcxqGk2daZrVC4D@dg',
792 + type: 'mesh',
793 + name: 'aaa',
794 + mtype: '2',
795 + desc: '',
796 + domain: '',
797 + links: { 'user//null': [Object] }
798 + },
799 + {
800 + _id: 'mesh//k5HMdnA3qofbsmNB$ciC54oQL6Ur$cqg9lqFmjqJ7mvkGuy4um$Kc1Q7kL02qzFk',
801 + desc: 'This is a test group',
802 + domain: '',
803 + links: { 'user//admin': [Object] },
804 + mtype: 2,
805 + name: 'Test2',
806 + type: 'mesh',
807 + deleted: '2019-06-30T18:31:56.782Z'
808 + },
809 + {
810 + _id: 'mesh//kjGAIF2bJzyD62YE7hKDx9j0CSv$@pSyM3NG@g5klup29oftZ7Gw23uE8CKlbG@P',
811 + desc: '',
812 + domain: '',
813 + links: { 'user//aa': [Object] },
814 + mtype: '2',
815 + name: 'dfghdfhgfd',
816 + type: 'mesh',
817 + deleted: '2019-06-13T18:45:14.796Z'
818 + },
819 + {
820 + _id: 'mesh//lO1mT2uVjCRmoPd8rIotEyfpov8D@Xj7BD08KPj7ZFaT$@p8nQHrD92vmiF2nn29',
821 + desc: 'This is a test group',
822 + domain: '',
823 + links: { 'user//admin': [Object] },
824 + mtype: 2,
825 + name: 'Test2',
826 + type: 'mesh',
827 + deleted: '2019-06-30T18:31:46.261Z'
828 + },
829 + {
830 + _id: 'mesh//lm2AD7PVRyTkGqXXqVPpWCYthR8WjQC5v2r$sS39tT207MI190MqeXQfdMpgUxvW',
831 + type: 'mesh',
832 + name: 'SampleMesh',
833 + mtype: '2',
834 + desc: '',
835 + domain: '',
836 + links: {}
837 + },
838 + {
839 + _id: 'mesh//lxX9ZvOBMtirS2aCzN2gIV8CAEvqJ63bbfvL8EXiXSA@yLslpNhDT1Paub9kUYaM',
840 + desc: '',
841 + domain: '',
842 + links: { 'user//admin': [Object] },
843 + mtype: '2',
844 name: 'aa',
321 - email: 'aa@aa.com',
322 - creation: 1552685405,
323 - login: 1552685405,
324 - domain: 'devtest',
325 - salt: '7NX9z7hNOFXcVXGccbcyEs1en/dVf6SskT0wGMW46yR7sMWVPOGiCT9AdlaN6huYSbhCprFCu7YIqw4MYFboyq0bhGGAnovFSIVs+XcEjfIG7I7D00HDsRS7Cf5SO2SU8XEzjIr+RirYqZhEzRUQvnHEPNkJg8JT8GI1I+fYWLM=',
326 - hash: 'wgh86y3OwRe+rcygmIYXuZGtetxoNuFKt2gBVClwxuS7tjYGLQu8Q9Hb4M7NWxCUFLUgq4JHmnvh0AMADGT+7NquDny6alTU5Yz8XUa0+qgiuUUX4LA5kuCoxxaqLIB/rsLoEMEMhFI9yRe0j3d1uAItVuHfyejl7+QvShkv26o=' },
327 - { _id: 'user/devtest/admin',
328 - type: 'user',
329 - name: 'admin',
330 - email: 'admin@admin.com',
331 - creation: 1552591371,
332 - login: 1552692388,
333 - domain: 'devtest',
334 - salt: 'MOQqzm7q32/fk27Z00lPwGW1GTASDczli6lDt/7yb8eNhU6d1Wo5sF5Pl/TZcxmNrBzTiVOnqBQbAfwXTYj8fPazyUDarYQ5wYs7I2rVmH5IQAotBUaANwkFv5OBJ+JrlOqiJvoQLiB6yJwk9enQpbZw+2LJOLysPgNkXzAFtCg=',
335 - hash: 'PXWMPJ6xNGlb9iUudI3uptVqZo5tz+fgK5/apDEaEr0W73pJAxekwpeiZy+gFkvdl7eSecYgnN6Krq5xoHbPC4cDNisLZYQNapBeVe5pjzHc7X3/kI364l/jiI2OVKT+GzfzS4sJYVaBvd+tledOFwn1PSzQ7UT4IP3YRywbI74=',
336 - siteadmin: 4294967295,
337 - links:
338 - { 'mesh/devtest/vqbVBqGofP8h3l9Wxgk$$Dh3NgpvGCmaiNiMZLvuHdolSbF3W7@qvwpKbJP4i2Bd': [Object],
339 - 'mesh/devtest/XJEZ5L3trxPBkZc@6E4CAXmzk2D@JvhAKf20RRMutxxE@H$dLW1Eo5PUVYb$k9UK': [Object] } } ]
845 + type: 'mesh',
846 + deleted: '2019-06-30T18:35:13.404Z'
847 + },
848 + {
849 + _id: 'mesh//mEWitFYP$wsbFNnZFykDAU1DVl90eP$1q1dlb3D5Ehq6WwVmETbDjWC$Y$x4NTsP',
850 + desc: '',
851 + domain: '',
852 + links: {},
853 + mtype: '2',
854 + name: 'test1',
855 + type: 'mesh'
856 + },
857 + {
858 + _id: 'mesh//nSkuWLhfVb8GtGO@gQn7i6MEivLPR1Jv1euxqE32D57jH0Q6hAQmMvPTfUmCaqOo',
859 + desc: 'This is a test group',
860 + domain: '',
861 + links: { 'user//admin': [Object] },
862 + mtype: 2,
863 + name: 'Test2',
864 + type: 'mesh',
865 + deleted: '2019-06-30T18:32:12.902Z'
866 + },
867 + {
868 + _id: 'mesh//nanrglVfQE5teW1fRPUY3lgZ2LvLnBnJ9ubzvDpfnRYX3T8Tsvp0SHlY5vgk58pA',
869 + type: 'mesh',
870 + name: 'Test Group',
871 + mtype: '2',
872 + desc: '',
873 + domain: '',
874 + links: { 'user//admin': [Object] },
875 + amt: { type: 1 },
876 + deleted: '2019-06-27T04:10:27.813Z'
877 + },
878 + {
879 + _id: 'mesh//oRdanQLDwNTP9BXftlic0g2u0QW59$y4xY15aqpZ$O9oUfjwpTDu5OLe@5lQzEQ1',
880 + type: 'mesh',
881 + name: 'MyHomeComputers',
882 + mtype: '2',
883 + desc: '',
884 + domain: '',
885 + links: {}
886 + },
887 + {
888 + _id: 'mesh//opfD4LaLDGs98cA7aV9ZQjS0lVQRfylBuxSRcPPVvjEx$Vs6woYZW2WJEE6Q3OC5',
889 + domain: '',
890 + links: { 'user//admin': [Object] },
891 + mtype: 2,
892 + name: 'Test',
893 + type: 'mesh',
894 + deleted: '2019-06-30T17:58:29.185Z'
895 + },
896 + {
897 + _id: 'mesh//p1q@gPuPne7MOgIEd66ttzT5fKbZREE0MbBx01dENkuxPOw0WkURk6adcsWzIiQR',
898 + desc: '',
899 + domain: '',
900 + links: { 'user//admin': [Object] },
901 + mtype: '2',
902 + name: 'aaaaa',
903 + type: 'mesh',
904 + deleted: '2019-05-29T21:03:36.523Z'
905 + },
906 + {
907 + type: 'mesh',
908 + _id: 'mesh//qbu74CK7bX8AYu9gqZNGSad1poraKWlyay0yCLrx8jPZ@d6$ZQX0XcwMThPWqqRQ',
909 + name: 'rrrr',
910 + mtype: '2',
911 + desc: '',
912 + domain: '',
913 + links: { 'user//cc': [Object] }
914 + },
915 + {
916 + _id: 'mesh//rfvBImOo3rvpBkjcjJT$RuOoua94BAoTkkwh5JVIWzsIO8znzl5QBw4CoekYfVRt',
917 + desc: '',
918 + domain: '',
919 + links: { 'user//admin': [Object] },
920 + mtype: '2',
921 + name: 'asasd',
922 + type: 'mesh',
923 + deleted: '2019-05-29T21:05:45.705Z'
924 + },
925 + {
926 + type: 'mesh',
927 + _id: 'mesh//s7UO8G$MG@axswQAMmiTjJ40h1uIj3s0azvxRIcU7kU@6AYI@yCL89uDnvZoEZRN',
928 + name: 'aaa',
929 + mtype: '2',
930 + desc: '',
931 + domain: '',
932 + links: {}
933 + },
934 + {
935 + _id: 'mesh//sFcxic9rWNlJDkMeXWhgx6x8m3oJdaqqGhuzv@o9yV1tpihi02rt33vZUfDDvhEz',
936 + type: 'mesh',
937 + name: 'asdasdasd',
938 + mtype: '2',
939 + desc: '',
940 + domain: '',
941 + links: { 'user//544849534953415445535453494431': [Object] },
942 + deleted: '2019-04-15T20:43:15.825Z'
943 + },
944 + {
945 + _id: 'mesh//sjN2rO85LGJCEXxW50TUI1vOCr@9zVpE4A@9jrAcPjA7n531RHZVMGpksK1yWY4O',
946 + type: 'mesh',
947 + name: 'IntelAMT only',
948 + mtype: '1',
949 + desc: '',
950 + domain: '',
951 + links: { 'user//admin': [Object] },
952 + amt: { type: 3, password: 'P@ssw0rd', cirasetup: 0 }
953 + },
954 + {
955 + type: 'mesh',
956 + _id: 'mesh//taXpzRwT6RFhbUimhNbunnElFeZ$ULUEmSwE6LXZrH8fz0cS6X9zbaBDIL8xaq4w',
957 + name: 'AA',
958 + mtype: '2',
959 + desc: '',
960 + domain: '',
961 + links: { 'user//admin': [Object] },
962 + deleted: 2020-03-17T22:04:57.410Z
963 + },
964 + {
965 + _id: 'mesh//tqni$zxbaBI2ko4MerpTDcOBs5AK22NNLb7LIn6zs46K3@2d1DtC3bESX81EP1H4',
966 + type: 'mesh',
967 + name: 'tqni$zxbaBI2ko4Mer',
968 + mtype: 2,
969 + desc: '',
970 + domain: '',
971 + links: { 'user//admin': [Object] },
972 + deleted: '2019-02-21T01:35:16.984Z'
973 + },
974 + {
975 + _id: 'mesh//v@IEBc31m50Cin361kByHAi0i7yhiPo$b4RP$SvcHrob8uQfDy2@N68NBg5eQtsu',
976 + desc: 'This is a test group',
977 + domain: '',
978 + links: { 'user//admin': [Object] },
979 + mtype: 2,
980 + name: 'Test2',
981 + type: 'mesh',
982 + deleted: '2019-06-30T18:32:47.661Z'
983 + },
984 + {
985 + _id: 'mesh//w7o0aTLrU2wA3iLDGz5Doct3HnCBKNbu9aoZUWONPkW5DtvCuxhOonWVtgaM9yrw',
986 + desc: '',
987 + domain: '',
988 + links: { 'user//aa@aa%252Ecom': [Object] },
989 + mtype: '2',
990 + name: 'aaa',
991 + type: 'mesh',
992 + deleted: '2019-07-10T18:44:53.022Z'
993 + },
994 + ... 8 more items
995 +]