Added AV details to device export.
Ylian Saint-Hilaire committed
Jun 11, 2021 at 11:57 UTC
bf899b2dede9c4b65d46b8aee1512c5f78f642c4
2 files changed
+16
-5
meshuser.js
+8
-4
@@ -5910,7 +5910,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5910
if (type == 'csv') {
5911
try {
5912
// Create the CSV file
5913
- output = 'id,name,rname,host,icon,ip,osdesc,groupname,av,update,firewall,cpu,osbuild,biosDate,biosVendor,biosVersion,boardName,boardVendor,boardVersion,productUuid,agentOpenSSL,agentCommitDate,agentCommitHash,agentCompileTime,netIfCount,macs,addresses\r\n';
5913
+ output = 'id,name,rname,host,icon,ip,osdesc,groupname,av,update,firewall,avdetails,cpu,osbuild,biosDate,biosVendor,biosVersion,boardName,boardVendor,boardVersion,productUuid,agentOpenSSL,agentCommitDate,agentCommitHash,agentCompileTime,netIfCount,macs,addresses\r\n';
5914
for (var i = 0; i < results.length; i++) {
5915
const nodeinfo = results[i];
5916
@@ -5920,11 +5920,15 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
5920
output += csvClean(n._id) + ',' + csvClean(n.name) + ',' + csvClean(n.rname ? n.rname : '') + ',' + csvClean(n.host ? n.host : '') + ',' + (n.icon ? n.icon : 1) + ',' + (n.ip ? n.ip : '') + ',' + (n.osdesc ? csvClean(n.osdesc) : '') + ',' + csvClean(parent.meshes[n.meshid].name);
5921
if (typeof n.wsc == 'object') {
5922
output += ',' + csvClean(n.wsc.antiVirus ? n.wsc.antiVirus : '') + ',' + csvClean(n.wsc.autoUpdate ? n.wsc.autoUpdate : '') + ',' + csvClean(n.wsc.firewall ? n.wsc.firewall : '')
5923
- } else {
5924
- output += ',,,';
5923
+ } else { output += ',,,'; }
5924
+ if (typeof n.av == 'object') {
5925
+ var avdetails = '', firstav = true;
5926
+ for (var a in n.av) { if (typeof n.av[a].product == 'string') { if (firstav) { firstav = false; } else { avdetails += '|'; } avdetails += (n.av[a].product + '/' + ((n.av[a].enabled) ? 'enabled' : 'disabled') + '/' + ((n.av[a].updated) ? 'updated' : 'notupdated')); } }
5927
+ output += ',' + csvClean(avdetails);
5928
}
5929
+ else { output += ','; }
5930
} else {
5927
- output += ',,,,,,,,,,';
5931
+ output += ',,,,,,,,,,,';
5932
}
5933
5934
// System infomation
views/default.handlebars
+8
-1
@@ -5143,11 +5143,18 @@
5143
meshserver.send({ action: 'getDeviceDetails', nodeids: chkNodeIds, type: 'csv' }); // With details
5144
} else {
5145
// Without details
5146
- var csv = "id, name, rname, host, icon, ip, osdesc, state, groupname, conn, pwr, av, update, firewall" + '\r\n', r = [];
5146
+ var csv = "id, name, rname, host, icon, ip, osdesc, state, groupname, conn, pwr, av, update, firewall, avdetails" + '\r\n', r = [];
5147
for (var i in chkNodeIds) {
5148
var n = getNodeFromId(chkNodeIds[i]);
5149
csv += '"' + n._id.split(',').join('') + '","' + n.name.split(',').join('') + '","' + (n.rname?(n.rname.split(',').join('')):'') + '","' + (n.host?(n.host.split(',').join('')):'') + '","' + n.icon + '","' + (n.ip?n.ip:'') + '","' + (n.osdesc?(n.osdesc.split(',').join('')):'') + '","' + n.state + '","' + meshes[n.meshid].name.split(',').join('') + '","' + (n.conn?n.conn:'') + '","' + (n.pwr?n.pwr:'') + '"';
5150
if (typeof n.wsc == 'object') { csv += ',"' + csvClean(n.wsc.antiVirus) + '","' + csvClean(n.wsc.autoUpdate) + '","' + csvClean(n.wsc.firewall) + '"'; } else { csv += ',,,'; }
5151
+ if (typeof n.av == 'object') {
5152
+ var avdetails = '', firstav= true;
5153
+ for (var a in n.av) { if (typeof n.av[a].product == 'string') { if (firstav) { firstav = false; } else { avdetails += '|'; } avdetails += (n.av[a].product + '/' + ((n.av[a].enabled)?'enabled':'disabled') + '/' + ((n.av[a].updated)?'updated':'notupdated')); } }
5154
+ csv += ',"' + csvClean(avdetails) + '"'; }
5155
+ else {
5156
+ csv += ',';
5157
+ }
5158
csv += '\r\n';
5159
}
5160
saveAs(new Blob([csv], { type: 'application/octet-stream' }), "devicelist.csv");