Files
2025-11-11 14:26:16 +07:00

53 lines
2.0 KiB
JavaScript

const adduserbutton = document.querySelector("#adduserbutton");
const adduserform = document.querySelector(".adduserform");
const canceladduserbutton = document.querySelector("#canceladduser");
const adduserformbody = document.querySelector(".adduserformbody");
const usernameinput = document.querySelector("#adduserformusername");
const passwordinput = document.querySelector("#adduserformpassword");
const groupinput = document.querySelector("#adduserformgroup");
const is_superuserinput = document.querySelector("#adduserformissuperuser");
const emailinput = document.querySelector("#adduserformemail");
adduserbutton.addEventListener("click", () => {
adduserform.classList.add("active");
});
canceladduserbutton.addEventListener("click", (e) => {
e.preventDefault();
adduserform.classList.remove("active");
});
adduserformbody.addEventListener("submit", async (e) => {
e.preventDefault();
const hashedpassword = await hashPassword(passwordinput.value);
const new_user = {
username: usernameinput.value,
email: emailinput.value,
password: hashedpassword,
group: groupinput.value,
is_superuser: is_superuserinput.checked,
};
const status = await fetch(routes.adduser(), {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: `{"token":"${localStorage.getItem("token")}","username":"${new_user.username}","email":"${new_user.email}","password":"${new_user.password}","group":"${new_user.group}","is_superuser":${new_user.is_superuser}}`,
})
.then((data) => data.json())
.then((jsondata) => jsondata)
.catch((error) => {
notification(`Ошибка на сервере: ${error}`, "error");
});
if (!status.error) {
adduserform.classList.remove("active");
await get_all_users();
notification("Пользователь успешно добавлен", "success");
usernameinput.value = "";
passwordinput.value = "";
groupinput.value = "";
} else {
notification(status.error, "error");
}
});