fix: improve URL parameter handling for CID and passcode extraction
This commit is contained in:
+22
-18
@@ -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")
|
|
||||||
localStorage.setItem("cid.cid", cid)
|
|
||||||
localStorage.setItem("cid.passcode", passcode)
|
|
||||||
log.debug("reload page")
|
|
||||||
location.reload();
|
location.reload();
|
||||||
|
} else {
|
||||||
|
log.debug("CID or passcode missing in URL; not setting local storage");
|
||||||
|
}
|
||||||
|
} 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");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user