Add passphrase keypasses
This commit is contained in:
@@ -236,6 +236,12 @@ let _allGates = [];
|
||||
document.getElementById("btn-new-keypass").addEventListener("click", () => {
|
||||
document.getElementById("kp-desc").value = "";
|
||||
document.getElementById("kp-code").value = "";
|
||||
// Reset complexity — default to passphrase
|
||||
document.getElementById("kp-charset").value = "passphrase";
|
||||
document.getElementById("kp-length").value = 12;
|
||||
document.getElementById("kp-length-val").textContent = "12";
|
||||
document.getElementById("kp-length-wrap").style.display = "none";
|
||||
document.getElementById("kp-autogen-options").style.display = "";
|
||||
// Reset never-expires
|
||||
const neverCb = document.getElementById("kp-never-expires");
|
||||
neverCb.checked = false;
|
||||
@@ -263,6 +269,17 @@ document.getElementById("btn-new-keypass").addEventListener("click", () => {
|
||||
document.getElementById("keypass-modal").classList.remove("hidden");
|
||||
});
|
||||
|
||||
// Auto-generation options — hide when a manual code is typed, hide length for passphrase
|
||||
document.getElementById("kp-code").addEventListener("input", e => {
|
||||
document.getElementById("kp-autogen-options").style.display = e.target.value.trim() ? "none" : "";
|
||||
});
|
||||
document.getElementById("kp-charset").addEventListener("change", e => {
|
||||
document.getElementById("kp-length-wrap").style.display = e.target.value === "passphrase" ? "none" : "";
|
||||
});
|
||||
document.getElementById("kp-length").addEventListener("input", e => {
|
||||
document.getElementById("kp-length-val").textContent = e.target.value;
|
||||
});
|
||||
|
||||
// Never expires toggle
|
||||
document.getElementById("kp-never-expires").addEventListener("change", e => {
|
||||
const kpExpInput = document.getElementById("kp-expires");
|
||||
@@ -345,6 +362,8 @@ document.getElementById("keypass-form").addEventListener("submit", async e => {
|
||||
e.preventDefault();
|
||||
const desc = document.getElementById("kp-desc").value.trim();
|
||||
const code = document.getElementById("kp-code").value.trim() || null;
|
||||
const charset = document.getElementById("kp-charset").value;
|
||||
const length = parseInt(document.getElementById("kp-length").value, 10);
|
||||
const neverExpires = document.getElementById("kp-never-expires").checked;
|
||||
const expires_at = neverExpires ? null : new Date(document.getElementById("kp-expires").value).toISOString();
|
||||
const allGates = document.getElementById("kp-all-gates").checked;
|
||||
@@ -352,7 +371,7 @@ document.getElementById("keypass-form").addEventListener("submit", async e => {
|
||||
const errEl = document.getElementById("kp-error");
|
||||
errEl.classList.add("hidden");
|
||||
try {
|
||||
await api("POST", "/api/admin/keypasses", { description: desc, expires_at, gate_ids, code });
|
||||
await api("POST", "/api/admin/keypasses", { description: desc, expires_at, gate_ids, code, charset, length });
|
||||
document.getElementById("keypass-modal").classList.add("hidden");
|
||||
showToast("Keypass created");
|
||||
loadKeypasses();
|
||||
|
||||
Reference in New Issue
Block a user