From 069656f6323bd5bd310608ffc2b6ef7aa3de019e Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Thu, 25 Feb 2021 12:31:03 -0800 Subject: [PATCH] Added device MeshCentral Router link filtering. --- meshcentral-config-schema.json | 5 +++++ sample-config-advanced.json | 3 ++- views/default.handlebars | 6 ++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/meshcentral-config-schema.json b/meshcentral-config-schema.json index 482bf01c..ffb4431c 100644 --- a/meshcentral-config-schema.json +++ b/meshcentral-config-schema.json @@ -246,6 +246,11 @@ "port": { "description": "The port on the remote device.", "type": "number" + }, + "filter": { + "description": "Array of node/domain/id or mesh/domain/id strings. When set, the link will only show up for the specified devices or device groups.", + "type": "array", + "items": { "type": "string" } } } } diff --git a/sample-config-advanced.json b/sample-config-advanced.json index e0001dcd..29999e2f 100644 --- a/sample-config-advanced.json +++ b/sample-config-advanced.json @@ -157,7 +157,8 @@ { "name": "HTTP", "protocol": "http", - "port": 80 + "port": 80, + "_filter": [ "mesh//xxxx", "node//xxxx" ] }, { "name": "HTTPS", diff --git a/views/default.handlebars b/views/default.handlebars index e1b76ed4..74299cd6 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -6115,8 +6115,10 @@ if ((serverinfo.devicemeshrouterlinks != null) && (Array.isArray(serverinfo.devicemeshrouterlinks.extralinks))) { for (var i in serverinfo.devicemeshrouterlinks.extralinks) { var r = serverinfo.devicemeshrouterlinks.extralinks[i], p = 0; - if (typeof r.protocol == 'number') { p = r.protocol; } else if (r.protocol == 'http') { p = 1; } else if (r.protocol == 'https') { p = 2; } else if (r.protocol == 'rdp') { p = 3; } else if (r.protocol == 'ssh') { p = 4; } else if (r.protocol == 'scp') { p = 5; } - x += '' + r.name + ' '; + if ((r.filter == null) || (Array.isArray(r.filter) && ((r.filter.indexOf(mesh._id) >= 0) || (r.filter.indexOf(node._id) >= 0)))) { + if (typeof r.protocol == 'number') { p = r.protocol; } else if (r.protocol == 'http') { p = 1; } else if (r.protocol == 'https') { p = 2; } else if (r.protocol == 'rdp') { p = 3; } else if (r.protocol == 'ssh') { p = 4; } else if (r.protocol == 'scp') { p = 5; } + x += '' + r.name + ' '; + } } } }