From 019d22695f863a8d53c7b2c6f8e8cb32856e4696 Mon Sep 17 00:00:00 2001 From: Brendan Golden Date: Mon, 1 Jan 2024 09:08:07 +0000 Subject: [PATCH] feat: Moved the JS out of the password reset page into its own file Related to #9 --- src/index.html | 2 +- src/password.html | 83 ---------------------------------------- src/password/index.html | 54 ++++++++++++++++++++++++++ src/password/password.js | 49 ++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 84 deletions(-) delete mode 100644 src/password.html create mode 100644 src/password/index.html create mode 100644 src/password/password.js diff --git a/src/index.html b/src/index.html index e3b815e..d00e122 100644 --- a/src/index.html +++ b/src/index.html @@ -23,7 +23,7 @@

- Change Password + Change Password

Please use this service to change your Skynet password diff --git a/src/password.html b/src/password.html deleted file mode 100644 index 9a7e389..0000000 --- a/src/password.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - Password reset - - - - -

- -
-

Password Change

-

- Change your Skynet password. -

-
- - - - - - - - - - - - - - - - - - - - -




-
-

- -
-
- UL Computer Society 2023-2023 - -
-
- - diff --git a/src/password/index.html b/src/password/index.html new file mode 100644 index 0000000..f6fe8c2 --- /dev/null +++ b/src/password/index.html @@ -0,0 +1,54 @@ + + + + + Password reset + + + + +
+ +
+

Password Change

+

+ Change your Skynet password. +

+
+ + + + + + + + + + + + + + + + + + + + +




+
+

+ +
+
+ UL Computer Society 2023-2023 + +
+
+ + diff --git a/src/password/password.js b/src/password/password.js new file mode 100644 index 0000000..e6cc5f2 --- /dev/null +++ b/src/password/password.js @@ -0,0 +1,49 @@ +const form = document.getElementById("form"); +form.addEventListener('submit', formHandler); + +const form_status = document.getElementById("formStatus"); + +const button = document.getElementById("button"); +button.addEventListener('submit', formHandler); + +async function formHandler(listener) { + listener.preventDefault(); + const formData = new FormData(form); + const user = formData.get("user"); + const pass = formData.get("pass"); + const newPW = formData.get("newPW"); + if (newPW !== formData.get("newPWConfirm")) { + + document.getElementById('formStatus').innerHTML = "Failure: new passwords don't match"; + + return; + } + + const body = {auth: {user: user, pass: pass}, field: "userPassword", value: newPW} + + let url = 'https://api.account.skynet.ie/ldap/update'; + let req; + + try { + req = await fetch(url, { + method: 'POST', + body: JSON.stringify(body), + mode: "cors" + }); + } catch (e) { + form_status.innerHTML = `${e}`; + return; + } + + if (req.status !== 200) { + form_status.innerHTML = "Failure"; + return; + } + + let temp = await req.json(); + if (temp.result === 'error') { + form_status.innerHTML = `${temp.error}`; + } else { + form_status.innerHTML = "Success"; + } +} \ No newline at end of file