From cda8a54b0bc7088e314ee2bc179f8f7e9f7f87f2 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Thu, 17 May 2018 13:37:50 -0700 Subject: [PATCH] Fixed account delete issues --- meshuser.js | 18 ++++++++++++++++++ package.json | 2 +- webserver.js | 3 +++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/meshuser.js b/meshuser.js index f5fcba73..4f5ef67d 100644 --- a/meshuser.js +++ b/meshuser.js @@ -415,6 +415,24 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain) { if ((deluser == null) || (delusersplit.length != 3) || (delusersplit[1] != domain.id)) break; // Invalid domain, operation only valid for current domain if ((deluser.siteadmin != null) && (deluser.siteadmin > 0) && (user.siteadmin != 0xFFFFFFFF)) break; // Need full admin to remote another administrator + // Remove all the mesh links to this user + if (deluser.links != null) { + for (var meshid in deluser.links) { + // Get the mesh + var mesh = obj.parent.meshes[meshid]; + if (mesh) { + // Remove user from the mesh + if (mesh.links[deluser._id] != null) { delete mesh.links[deluser._id]; obj.parent.db.Set(mesh); } + // Notify mesh change + var change = 'Removed user ' + deluser.name + ' from mesh ' + mesh.name; + 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 }) + } + } + } + + // Remove notes for this user + obj.db.Remove('nt' + deluser._id); + // Delete all files on the server for this account try { var deluserpath = obj.parent.getServerRootFilePath(deluser); diff --git a/package.json b/package.json index 12992712..8cac1407 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.1.7-k", + "version": "0.1.7-l", "keywords": [ "Remote Management", "Intel AMT", diff --git a/webserver.js b/webserver.js index 4383c96c..c6afe2f4 100644 --- a/webserver.js +++ b/webserver.js @@ -558,6 +558,9 @@ module.exports.CreateWebServer = function (parent, db, args, secret, certificate } } + // Remove notes for this user + obj.db.Remove('nt' + user._id); + // Remove the user obj.db.Remove(user._id); delete obj.users[user._id];