mirror of
				https://github.com/Ylianst/MeshCentral.git
				synced 2025-03-09 15:40:18 +00:00 
			
		
		
		
	Added device group change feature
This commit is contained in:
		
							parent
							
								
									168322c146
								
							
						
					
					
						commit
						de1ace8619
					
				
					 6 changed files with 158 additions and 13 deletions
				
			
		
							
								
								
									
										41
									
								
								meshuser.js
									
										
									
									
									
								
							
							
						
						
									
										41
									
								
								meshuser.js
									
										
									
									
									
								
							|  | @ -1068,6 +1068,47 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use | |||
|                     } | ||||
|                     break; | ||||
|                 } | ||||
|             case 'changeDeviceMesh': | ||||
|                 { | ||||
|                     if (obj.common.validateString(command.nodeid, 1, 256) == false) break; // Check nodeid string
 | ||||
|                     if (obj.common.validateString(command.meshid, 1, 256) == false) break; // Check meshid string
 | ||||
| 
 | ||||
|                     obj.db.Get(command.nodeid, function (err, nodes) { | ||||
|                         if (nodes.length != 1) return; | ||||
|                         var node = nodes[0]; | ||||
| 
 | ||||
|                         // Check if already in the right mesh
 | ||||
|                         if (node.meshid == command.meshid) return; | ||||
| 
 | ||||
|                         // Make sure that we have rights on both source and destination mesh
 | ||||
|                         var sourceMeshRights = user.links[node.meshid].rights; | ||||
|                         var targetMeshRights = user.links[command.meshid].rights; | ||||
|                         if (((sourceMeshRights & 4) == 0) || ((targetMeshRights & 4) == 0)) return; | ||||
| 
 | ||||
|                         // Perform the switch, start by saving the node with the new meshid.
 | ||||
|                         var oldMeshId = node.meshid; | ||||
|                         node.meshid = command.meshid; | ||||
|                         obj.db.Set(node); | ||||
| 
 | ||||
|                         // If the device is connected on this server, switch it now.
 | ||||
|                         var agentSession = obj.parent.wsagents[command.nodeid]; | ||||
|                         if (agentSession != null) { agentSession.dbMeshKey = command.meshid; agentSession.meshid = command.meshid.split('/')[2]; } | ||||
| 
 | ||||
|                         // Add the connection state
 | ||||
|                         var state = obj.parent.parent.GetConnectivityState(node._id); | ||||
|                         if (state) { | ||||
|                             node.conn = state.connectivity; | ||||
|                             node.pwr = state.powerState; | ||||
|                             if ((state.connectivity & 1) != 0) { var agent = obj.parent.wsagents[node._id]; if (agent != null) { node.agct = agent.connectTime; } } | ||||
|                             if ((state.connectivity & 2) != 0) { var cira = obj.parent.parent.mpsserver.ciraConnections[node._id]; if (cira != null) { node.cict = cira.tag.connectTime; } } | ||||
|                         } | ||||
| 
 | ||||
|                         // Event the node change
 | ||||
|                         var newMesh = obj.parent.meshes[command.meshid]; | ||||
|                         obj.parent.parent.DispatchEvent(['*', oldMeshId, command.meshid], obj, { etype: 'node', username: user.name, action: 'nodemeshchange', nodeid: node._id, node: node, oldMeshId: oldMeshId, newMeshId: command.meshid, msg: 'Moved device ' + node.name + ' to group ' + newMesh.name, domain: domain.id }); | ||||
|                     }); | ||||
|                     break; | ||||
|                 } | ||||
|             case 'removedevices': | ||||
|                 { | ||||
|                     if (obj.common.validateArray(command.nodeids, 1) == false) break; // Check nodeid's
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue