Fix for shift-click with login key, #3161

Ylian Saint-Hilaire committed Oct 6, 2021 at 18:48 UTC e67273226f45b6578e2799f50a299a7929541e92
1 file changed +11 -8
views/default.handlebars
+11 -8
@@ -5659,7 +5659,7 @@
5659 var panel = [0, 10, 12, 11, 13, 16, 17, 15, 19][action]; // (invalid), General, Desktop, Terminal, Files, Events, Console, Plugin
5660 if (event && (event.shiftKey == true)) {
5661 // Open the device in a different tab
5662 - safeNewWindow(window.location.origin + '?node=' + nodeid.split('/')[2] + '&viewmode=' + panel + '&hide=16', 'meshcentral:' + nodeid);
5662 + safeNewWindow(window.location.origin + '?node=' + nodeid.split('/')[2] + '&viewmode=' + panel + '&hide=16' + ((urlargs.key)?('&key=' + urlargs.key):''), 'meshcentral:' + nodeid);
5663 } else {
5664 // Go to the right panel
5665 gotoDevice(nodeid, panel);
@@ -5810,7 +5810,7 @@
5810
5811 function cmdeskplayeraction(action) {
5812 if (xxdialogMode) return;
5813 - safeNewWindow(window.location.origin + '{{{domainurl}}}player.htm', 'meshcentral-deskplayer');
5813 + safeNewWindow(window.location.origin + '{{{domainurl}}}player.htm' + ((urlargs.key)?('?key=' + urlargs.key):''), 'meshcentral-deskplayer');
5814 }
5815
5816 function cmdeskshortcutaction(action) {
@@ -6486,7 +6486,7 @@
6486
6487 if (event && (event.shiftKey == true)) {
6488 // Open the device in a different tab
6489 - safeNewWindow(window.location.origin + '?node=' + nodeid.split('/')[2] + '&viewmode=10&hide=16', 'meshcentral:' + nodeid);
6489 + safeNewWindow(window.location.origin + '?node=' + nodeid.split('/')[2] + '&viewmode=10&hide=16' + ((urlargs.key)?('&key=' + urlargs.key):''), 'meshcentral:' + nodeid);
6490 return;
6491 }
6492
@@ -7713,6 +7713,7 @@
7713 var node = getNodeFromId(nodeid);
7714 if (node == null) return;
7715 if ([1, 2, 3, 4, 21, 22].indexOf(node.agent.id) >= 0) { url += '&os=win'; } else { url += '&os=linux'; }
7716 + if (urlargs.key) { url += '&key=' + urlargs.key; }
7717 safeNewWindow(url, 'xterm:' + nodeid);
7718 return false;
7719 }
@@ -13290,6 +13291,7 @@
13291 haltEvent(e);
13292 var url = '/messenger?id=meshmessenger/' + userid + '/' + encodeURIComponentEx(userinfo._id) + '&title=' + name;
13293 if ((authCookie != null) && (authCookie != '')) { url += '&auth=' + authCookie; }
13294 + if (urlargs.key) { url += '&key=' + urlargs.key; }
13295 safeNewWindow(url, 'meshmessenger:' + userid);
13296 meshserver.send({ action: 'meshmessenger', userid: decodeURIComponent(userid) });
13297 return false;
@@ -13299,6 +13301,7 @@
13301 if (xxdialogMode) return;
13302 haltEvent(e);
13303 var url = serverinfo.altmessenging[i].url.split('{0}').join(userid.split('/').join('-'));
13304 + if (urlargs.key) { url += '&key=' + urlargs.key; }
13305 safeNewWindow(url, 'altmessenger:' + userid);
13306 meshserver.send({ action: 'notifyuser', userid: decodeURIComponent(userid), msg: serverinfo.altmessenging[i].name, msgid: 11, url: url });
13307 return false;
@@ -15948,15 +15951,15 @@
15951 if (event && (event.shiftKey == true) && (x != 15) && ('{{{currentNode}}}'.toLowerCase() == '')) {
15952 // Open the device in a different tab
15953 if ((x >= 10) && (x <= 19)) {
15951 - if (currentNode) { safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?gotonode=' + currentNode._id.split('/')[2] + '&viewmode=' + x + '&hide=16', 'meshcentral:' + currentNode._id); }
15954 + if (currentNode) { safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?gotonode=' + currentNode._id.split('/')[2] + '&viewmode=' + x + '&hide=16' + ((urlargs.key)?('&key=' + urlargs.key):''), 'meshcentral:' + currentNode._id); }
15955 } else if ((x >= 20) && (x <= 29)) {
15953 - if (currentMesh) { safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?gotomesh=' + currentMesh._id.split('/')[2] + '&viewmode=' + x + '&hide=16', 'meshcentral:' + currentMesh._id); }
15956 + if (currentMesh) { safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?gotomesh=' + currentMesh._id.split('/')[2] + '&viewmode=' + x + '&hide=16' + ((urlargs.key)?('&key=' + urlargs.key):''), 'meshcentral:' + currentMesh._id); }
15957 } else if ((x >= 30) && (x <= 39)) {
15955 - if (currentUser) { safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?gotouser=' + ((serverinfo.crossDomain)?currentUser._id:currentUser._id.split('/')[2]) + '&viewmode=' + x + '&hide=16', 'meshcentral:' + currentUser._id); }
15958 + if (currentUser) { safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?gotouser=' + ((serverinfo.crossDomain)?currentUser._id:currentUser._id.split('/')[2]) + '&viewmode=' + x + '&hide=16' + ((urlargs.key)?('&key=' + urlargs.key):''), 'meshcentral:' + currentUser._id); }
15959 } else if ((x >= 50) && (x <= 59)) {
15957 - if (currentUserGroup) { safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?gotougrp=' + ((serverinfo.crossDomain)?currentUserGroup._id:currentUserGroup._id.split('/')[2]) + '&viewmode=' + x + '&hide=16', 'meshcentral:' + currentUserGroup._id); }
15960 + if (currentUserGroup) { safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?gotougrp=' + ((serverinfo.crossDomain)?currentUserGroup._id:currentUserGroup._id.split('/')[2]) + '&viewmode=' + x + '&hide=16' + ((urlargs.key)?('&key=' + urlargs.key):''), 'meshcentral:' + currentUserGroup._id); }
15961 } else { // if (x < 10))
15959 - safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?viewmode=' + x + '&hide=0', 'meshcentral:' + x);
15962 + safeNewWindow(window.location.origin + '{{{domainurl}}}' + '?viewmode=' + x + '&hide=0' + ((urlargs.key)?('&key=' + urlargs.key):''), 'meshcentral:' + x);
15963 }
15964 return;
15965 }