From 4afe0fe3f9c64774cd840b36034c59a94ec57b2b Mon Sep 17 00:00:00 2001 From: si458 Date: Tue, 20 May 2025 22:29:04 +0100 Subject: [PATCH] fix ~users in active sessions popup #7044 Signed-off-by: si458 --- views/default-mobile.handlebars | 11 ++++++++++- views/default.handlebars | 1 + views/default3.handlebars | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/views/default-mobile.handlebars b/views/default-mobile.handlebars index 0fe029af..7add501c 100644 --- a/views/default-mobile.handlebars +++ b/views/default-mobile.handlebars @@ -7631,7 +7631,16 @@ function printDateTime(d) { return d.toLocaleString(args.locale); } function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); }; function nobreak(x) { return x.split(' ').join(' '); } - function getUserName(userid) { if (users && users[userid] != null) return users[userid].name; return userid.split('/')[2]; } + function getUserName(userid) { + var useridsplit = userid.split('/'), userid2 = useridsplit[0] + '/' + useridsplit[1] + '/' + useridsplit[2], guestname = ''; + if ((useridsplit.length == 4) && (useridsplit[3].startsWith('guest:'))) { guestname = ' - ' + decode_utf8(atob(useridsplit[3].substring(6))); } + if (users && users[userid2] != null) { if (users[userid2].realname != null) return (users[userid2].realname + guestname); else return (users[userid2].name + guestname); } + if (currentNode && currentNode.links && currentNode.links[userid] && currentNode.links[userid].name != null) { return (currentNode.links[userid].name + guestname); } + if (userid == userinfo._id) { return (userinfo.name + guestname); } + if (nodes) { for (var a in nodes) { if (nodes[a].links) { for (var b in nodes[a].links) { if (nodes[a].links[b].name && b == userid) return (nodes[a].links[b].name + guestname); } } } } + if (meshes) { for (var a in meshes) { if (meshes[a].links) { for (var b in meshes[a].links) { if (meshes[a].links[b].name && b == userid) return (meshes[a].links[b].name + guestname); } } } } + return (useridsplit[2] + guestname); + } function addDetailItem(title, value, state) { return '
' + nobreak(title) + '' + value + '
'; } function isPrivateIP(a) { return (a.startsWith('10.') || a.startsWith('172.16.') || a.startsWith('192.168.')); } function encodeURIComponentEx(txt) { return encodeURIComponent(txt).replace(/'/g, '%27'); }; diff --git a/views/default.handlebars b/views/default.handlebars index dfd21de4..091004f8 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -19349,6 +19349,7 @@ if (currentNode && currentNode.links && currentNode.links[userid] && currentNode.links[userid].name != null) { return (currentNode.links[userid].name + guestname); } if (userid == userinfo._id) { return (userinfo.name + guestname); } if (nodes) { for (var a in nodes) { if (nodes[a].links) { for (var b in nodes[a].links) { if (nodes[a].links[b].name && b == userid) return (nodes[a].links[b].name + guestname); } } } } + if (meshes) { for (var a in meshes) { if (meshes[a].links) { for (var b in meshes[a].links) { if (meshes[a].links[b].name && b == userid) return (meshes[a].links[b].name + guestname); } } } } return (useridsplit[2] + guestname); } function round(value, precision) { var multiplier = Math.pow(10, precision || 0); return Math.round(value * multiplier) / multiplier; } diff --git a/views/default3.handlebars b/views/default3.handlebars index 0297b725..498ef41a 100644 --- a/views/default3.handlebars +++ b/views/default3.handlebars @@ -20668,6 +20668,7 @@ if (currentNode && currentNode.links && currentNode.links[userid] && currentNode.links[userid].name != null) { return (currentNode.links[userid].name + guestname); } if (userid == userinfo._id) { return (userinfo.name + guestname); } if (nodes) { for (var a in nodes) { if (nodes[a].links) { for (var b in nodes[a].links) { if (nodes[a].links[b].name && b == userid) return (nodes[a].links[b].name + guestname); } } } } + if (meshes) { for (var a in meshes) { if (meshes[a].links) { for (var b in meshes[a].links) { if (meshes[a].links[b].name && b == userid) return (meshes[a].links[b].name + guestname); } } } } return (useridsplit[2] + guestname); } function round(value, precision) { var multiplier = Math.pow(10, precision || 0); return Math.round(value * multiplier) / multiplier; }