fix: improve URL parameter handling for CID and passcode extraction

This commit is contained in:
Ross
2026-01-19 11:22:26 +00:00
parent d380c745c9
commit eed5b1344a
+23 -19
View File
@@ -215,26 +215,26 @@ async function retrievePacketList() {
} else { } else {
log.debug("Try and set CID / Passcode from current URL") log.debug("Try and set CID / Passcode from current URL")
let items = window.location.search.substr(1).split("&"); try {
if (items.length == 2) { const params = new URLSearchParams(window.location.search);
for (let index = 0; index < items.length; index++) { const cidParam = params.get("cid");
const item = items[index]; const passParam = params.get("passcode");
let s = item.split("=");
if (s[0] == "cid") { // Only set if BOTH parameters exist and are non-empty
cid = s[1]; if (cidParam !== null && passParam !== null && cidParam !== "" && passParam !== "") {
} cid = decodeURIComponent(cidParam);
if (s[0] == "passcode") { passcode = decodeURIComponent(passParam);
passcode = s[1]; log.debug("CID and passcode extracted from URL", cid, passcode);
} log.debug("adding to local db");
localStorage.setItem("cid.cid", cid);
}; localStorage.setItem("cid.passcode", passcode);
log.debug("CID and passcode extracted from URL", cid, passcode) log.debug("reload page");
log.debug("adding to local db") location.reload();
localStorage.setItem("cid.cid", cid) } else {
localStorage.setItem("cid.passcode", passcode) log.debug("CID or passcode missing in URL; not setting local storage");
log.debug("reload page") }
location.reload(); } catch (e) {
log.debug("Error parsing URL params for CID/passcode", e);
} }
} }
@@ -273,6 +273,10 @@ async function retrievePacketList() {
localStorage.removeItem("cid.cid"); localStorage.removeItem("cid.cid");
localStorage.removeItem("cid.passcode"); localStorage.removeItem("cid.passcode");
$.notify("Unable to login", "error"); $.notify("Unable to login", "error");
$.notify("This page will now reload", "error");
setTimeout(() => {
window.location.reload();
}, 3000);
$("#options-panel").show(); $("#options-panel").show();
$("#candidate-details").addClass("invalid-login"); $("#candidate-details").addClass("invalid-login");
} }