fix adding meshes and user groups in a peering environment (#6534)

ijustw0rkhere committed Nov 15, 2024 at 16:54 UTC 3da60b43ac905dfb132f6c8b7d144ab7794e80a3
1 file changed +14 -12
db.js
+14 -12
@@ -4089,12 +4089,13 @@ module.exports.CreateDB = function (parent, func) {
4089 }
4090
4091 // Send the mesh update
4092 - if (mesh.deleted) { mesh.action = 'deletemesh'; } else { mesh.action = (added ? 'createmesh' : 'meshchange'); }
4093 - mesh.meshid = mesh._id;
4094 - mesh.nolog = 1;
4095 - delete mesh.type;
4096 - delete mesh._id;
4097 - parent.DispatchEvent(['*', mesh.meshid], obj, parent.webserver.CloneSafeMesh(mesh));
4092 + var mesh2 = Object.assign({}, mesh); // Shallow clone
4093 + if (mesh2.deleted) { mesh2.action = 'deletemesh'; } else { mesh2.action = (added ? 'createmesh' : 'meshchange'); }
4094 + mesh2.meshid = mesh2._id;
4095 + mesh2.nolog = 1;
4096 + delete mesh2.type;
4097 + delete mesh2._id;
4098 + parent.DispatchEvent(['*', mesh2.meshid], obj, parent.webserver.CloneSafeMesh(mesh2));
4099 }
4100
4101 // Called when a user account has changed
@@ -4138,12 +4139,13 @@ module.exports.CreateDB = function (parent, func) {
4139 }
4140
4141 // Send the user group update
4141 - usergroup.action = (added ? 'createusergroup' : 'usergroupchange');
4142 - usergroup.ugrpid = usergroup._id;
4143 - usergroup.nolog = 1;
4144 - delete usergroup.type;
4145 - delete usergroup._id;
4146 - parent.DispatchEvent(['*', usergroup.ugrpid], obj, usergroup);
4142 + var usergroup2 = Object.assign({}, usergroup); // Shallow clone
4143 + usergroup2.action = (added ? 'createusergroup' : 'usergroupchange');
4144 + usergroup2.ugrpid = usergroup2._id;
4145 + usergroup2.nolog = 1;
4146 + delete usergroup2.type;
4147 + delete usergroup2._id;
4148 + parent.DispatchEvent(['*', usergroup2.ugrpid], obj, usergroup2);
4149 }
4150
4151 function dbMergeSqlArray(arr) {