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) {