First release of open core
This commit is contained in:
52
ui/static/auth.js
Normal file
52
ui/static/auth.js
Normal file
@@ -0,0 +1,52 @@
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
|
||||
// --- LOGIN LOGIC ---
|
||||
const loginForm = document.getElementById("loginForm");
|
||||
if (loginForm) {
|
||||
loginForm.addEventListener("submit", async (e) => {
|
||||
e.preventDefault();
|
||||
const btn = document.getElementById("submitBtn");
|
||||
const errDiv = document.getElementById("errorMsg");
|
||||
|
||||
btn.innerText = "Authenticating..."; btn.disabled = true; errDiv.style.display = "none";
|
||||
|
||||
try {
|
||||
const res = await fetch("/api/auth/login", {
|
||||
method: "POST", headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ email: document.getElementById("email").value, password: document.getElementById("password").value })
|
||||
});
|
||||
|
||||
if (res.ok) window.location.href = "/dashboard";
|
||||
else { errDiv.innerText = "Invalid credentials. Please try again."; errDiv.style.display = "block"; btn.innerText = "Sign In"; btn.disabled = false; }
|
||||
} catch (err) { errDiv.innerText = "Network error."; errDiv.style.display = "block"; btn.innerText = "Sign In"; btn.disabled = false; }
|
||||
});
|
||||
}
|
||||
|
||||
// --- REGISTER LOGIC ---
|
||||
const registerForm = document.getElementById("registerForm");
|
||||
if (registerForm) {
|
||||
registerForm.addEventListener("submit", async (e) => {
|
||||
e.preventDefault();
|
||||
const btn = document.getElementById("submitBtn");
|
||||
const errDiv = document.getElementById("errorMsg");
|
||||
|
||||
btn.innerText = "Securing System..."; btn.disabled = true; errDiv.style.display = "none";
|
||||
|
||||
const payload = {
|
||||
full_name: document.getElementById("fullname").value, email: document.getElementById("email").value,
|
||||
password: document.getElementById("password").value, global_role: "Sheriff"
|
||||
};
|
||||
|
||||
try {
|
||||
const res = await fetch("/api/auth/register", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) });
|
||||
if (res.ok) {
|
||||
const loginRes = await fetch("/api/auth/login", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ email: payload.email, password: payload.password }) });
|
||||
if (loginRes.ok) window.location.href = "/dashboard"; else window.location.href = "/login";
|
||||
} else {
|
||||
errDiv.innerText = await res.text() || "Registration failed. System might already be locked.";
|
||||
errDiv.style.display = "block"; btn.innerText = "Claim Sheriff Access"; btn.disabled = false;
|
||||
}
|
||||
} catch (err) { errDiv.innerText = "Network error."; errDiv.style.display = "block"; btn.innerText = "Claim Sheriff Access"; btn.disabled = false; }
|
||||
});
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user