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];