mirror of
				https://github.com/Ylianst/MeshCentral.git
				synced 2025-10-29 23:35:02 -04:00 
			
		
		
		
	Device download improvements.
This commit is contained in:
		
							parent
							
								
									e744813598
								
							
						
					
					
						commit
						c33d18207b
					
				| @ -33,6 +33,25 @@ module.exports.CreateMeshDeviceFile = function (parent, ws, res, req, domain, us | ||||
|     obj.relaySessionCounted = true; | ||||
|     parent.relaySessionCount++; | ||||
| 
 | ||||
|     // Mesh Rights
 | ||||
|     const MESHRIGHT_EDITMESH = 1; | ||||
|     const MESHRIGHT_MANAGEUSERS = 2; | ||||
|     const MESHRIGHT_MANAGECOMPUTERS = 4; | ||||
|     const MESHRIGHT_REMOTECONTROL = 8; | ||||
|     const MESHRIGHT_AGENTCONSOLE = 16; | ||||
|     const MESHRIGHT_SERVERFILES = 32; | ||||
|     const MESHRIGHT_WAKEDEVICE = 64; | ||||
|     const MESHRIGHT_SETNOTES = 128; | ||||
|     const MESHRIGHT_REMOTEVIEW = 256; | ||||
| 
 | ||||
|     // Site rights
 | ||||
|     const SITERIGHT_SERVERBACKUP = 1; | ||||
|     const SITERIGHT_MANAGEUSERS = 2; | ||||
|     const SITERIGHT_SERVERRESTORE = 4; | ||||
|     const SITERIGHT_FILEACCESS = 8; | ||||
|     const SITERIGHT_SERVERUPDATE = 16; | ||||
|     const SITERIGHT_LOCKED = 32; | ||||
| 
 | ||||
|     // Clean a IPv6 address that encodes a IPv4 address
 | ||||
|     function cleanRemoteAddr(addr) { if (addr.startsWith('::ffff:')) { return addr.substring(7); } else { return addr; } } | ||||
| 
 | ||||
| @ -67,7 +86,7 @@ module.exports.CreateMeshDeviceFile = function (parent, ws, res, req, domain, us | ||||
|                 // Check if we have permission to send a message to that node
 | ||||
|                 rights = parent.GetNodeRights(user, agent.dbMeshKey, agent.dbNodeKey); | ||||
|                 mesh = parent.meshes[agent.dbMeshKey]; | ||||
|                 if ((rights != null) && (mesh != null) || ((rights & 16) != 0)) { // TODO: 16 is console permission, may need more gradular permission checking
 | ||||
|                 if ((rights != null) && (mesh != null) || ((rights & MESHRIGHT_REMOTECONTROL) != 0)) { // 8 is device remote control
 | ||||
|                     command.rights = rights;                    // Add user rights flags to the message
 | ||||
|                     if (typeof command.consent == 'number') { command.consent = command.consent | mesh.consent; } else { command.consent = mesh.consent; } // Add user consent
 | ||||
|                     if (typeof domain.userconsentflags == 'number') { command.consent |= domain.userconsentflags; } // Add server required consent flags
 | ||||
| @ -85,7 +104,7 @@ module.exports.CreateMeshDeviceFile = function (parent, ws, res, req, domain, us | ||||
|                     // Check if we have permission to send a message to that node
 | ||||
|                     rights = parent.GetNodeRights(user, routing.meshid, command.nodeid); | ||||
|                     mesh = parent.meshes[routing.meshid]; | ||||
|                     if (rights != null || ((rights & 16) != 0)) { // TODO: 16 is console permission, may need more gradular permission checking
 | ||||
|                     if (rights != null || ((rights & MESHRIGHT_REMOTECONTROL) != 0)) { // 8 is device remote control
 | ||||
|                         command.rights = rights;                // Add user rights flags to the message
 | ||||
|                         if (typeof command.consent == 'number') { command.consent = command.consent | mesh.consent; } else { command.consent = mesh.consent; } // Add user consent
 | ||||
|                         if (typeof domain.userconsentflags == 'number') { command.consent |= domain.userconsentflags; } // Add server required consent flags
 | ||||
|  | ||||
| @ -95,7 +95,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie | ||||
|                 // Check if we have permission to send a message to that node
 | ||||
|                 rights = parent.GetNodeRights(user, agent.dbMeshKey, agent.dbNodeKey); | ||||
|                 mesh = parent.meshes[agent.dbMeshKey]; | ||||
|                 if ((rights != null) && (mesh != null) || ((rights & 16) != 0)) { // TODO: 16 is console permission, may need more gradular permission checking
 | ||||
|                 if ((rights != null) && (mesh != null) || ((rights & MESHRIGHT_REMOTECONTROL) != 0)) { | ||||
|                     if (ws.sessionId) { command.sessionid = ws.sessionId; }   // Set the session id, required for responses.
 | ||||
|                     command.rights = rights;            // Add user rights flags to the message
 | ||||
|                     if (typeof command.consent == 'number') { command.consent = command.consent | mesh.consent; } else { command.consent = mesh.consent; } // Add user consent
 | ||||
| @ -114,7 +114,7 @@ module.exports.CreateMeshRelay = function (parent, ws, req, domain, user, cookie | ||||
|                     // Check if we have permission to send a message to that node
 | ||||
|                     rights = parent.GetNodeRights(user, routing.meshid, command.nodeid); | ||||
|                     mesh = parent.meshes[routing.meshid]; | ||||
|                     if (rights != null || ((rights & 16) != 0)) { // TODO: 16 is console permission, may need more gradular permission checking
 | ||||
|                     if (rights != null || ((rights & MESHRIGHT_REMOTECONTROL) != 0)) { | ||||
|                         if (ws.sessionId) { command.fromSessionid = ws.sessionId; }   // Set the session id, required for responses.
 | ||||
|                         command.rights = rights;                // Add user rights flags to the message
 | ||||
|                         if (typeof command.consent == 'number') { command.consent = command.consent | mesh.consent; } else { command.consent = mesh.consent; } // Add user consent
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user