Fixed account delete issues
Ylian Saint-Hilaire committed
May 17, 2018 at 13:37 UTC
cda8a54b0bc7088e314ee2bc179f8f7e9f7f87f2
3 files changed
+22
-1
meshuser.js
+18
@@ -415,6 +415,24 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain) {
415
if ((deluser == null) || (delusersplit.length != 3) || (delusersplit[1] != domain.id)) break; // Invalid domain, operation only valid for current domain
416
if ((deluser.siteadmin != null) && (deluser.siteadmin > 0) && (user.siteadmin != 0xFFFFFFFF)) break; // Need full admin to remote another administrator
417
418
+ // Remove all the mesh links to this user
419
+ if (deluser.links != null) {
420
+ for (var meshid in deluser.links) {
421
+ // Get the mesh
422
+ var mesh = obj.parent.meshes[meshid];
423
+ if (mesh) {
424
+ // Remove user from the mesh
425
+ if (mesh.links[deluser._id] != null) { delete mesh.links[deluser._id]; obj.parent.db.Set(mesh); }
426
+ // Notify mesh change
427
+ var change = 'Removed user ' + deluser.name + ' from mesh ' + mesh.name;
428
+ obj.parent.parent.DispatchEvent(['*', mesh._id, deluser._id, userid], obj, { etype: 'mesh', username: user.name, userid: userid, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: change, domain: domain.id })
429
+ }
430
+ }
431
+ }
432
+
433
+ // Remove notes for this user
434
+ obj.db.Remove('nt' + deluser._id);
435
+
436
// Delete all files on the server for this account
437
try {
438
var deluserpath = obj.parent.getServerRootFilePath(deluser);
package.json
+1
-1
@@ -1,6 +1,6 @@
1
{
2
"name": "meshcentral",
3
- "version": "0.1.7-k",
3
+ "version": "0.1.7-l",
4
"keywords": [
5
"Remote Management",
6
"Intel AMT",
webserver.js
+3
@@ -558,6 +558,9 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate
558
}
559
}
560
561
+ // Remove notes for this user
562
+ obj.db.Remove('nt' + user._id);
563
+
564
// Remove the user
565
obj.db.Remove(user._id);
566
delete obj.users[user._id];