<!DOCTYPE html> <html lang="en-ie"> <head> <meta charset="UTF-8"/> <title>Account Recovery</title> <link rel="icon" type="image/png" href="../images/favicon/favicon-16x16.png"/> <link rel="stylesheet" type="text/css" href="../stylesheets/index.css"/> </head> <body> <div id="title"> <a href="../"><img src="../images/sharky_vector_svg.svg" alt="Picture of Sharky, the mascot of skynet" width="145" height="81.56"/> </a> <h1>Skynet Password Reset & Sign-up service</h1> </div> <div class="boxes"> <h2>Forgot Password</h2> <p>Please use this page to request a password reset link to your linked email.</p> <form id="recovery"> <table id="table"> <tr> <td><label for="username">Username</label> </td> <td><input type="text" id="username" name="username"/> <br/></td> </tr> <tr> <td>Or<br/></td> </tr> <tr> <td><label for="email">Email</label> </td> <td><input type="text" id="email" name="email"/> <br/></td> </tr> <tr> <td colspan="2"><input type="submit" value="submit"/></td> </tr> </table> </form> <p id="formStatus"></p> </div> <footer> UL Computer Society 2023-<span id="year">2023</span> </footer> <script> const formEl = document.getElementById('recovery'); formEl.addEventListener('submit', formHandler); async function formHandler(listener) { listener.preventDefault(); // reset teh form status document.getElementById('formStatus').innerHTML = ""; const formData = new FormData(formEl); const username = formData.get('username').trim(); const email = formData.get('email').trim(); if (username.length === 0 && email.length === 0) { document.getElementById('formStatus').innerHTML = "<span style='background-color: red; color: white'>Please enter username or email</span>"; return; } let to_send = { email: email }; // assuming username is not empty it is the preferred method if (username.length > 0) { to_send = {user: username}; } let url = "https://api.account.skynet.ie/ldap/recover/password"; try { let req = await fetch(url, { method: 'POST', body: JSON.stringify(to_send), mode: "cors" }); if (req.status === 200) { document.getElementById('formStatus').innerHTML = "<span style='background-color: green; color: white'>Success Please check emails</span>"; } else { document.getElementById('formStatus').innerHTML = "<span style='background-color: red; color: white'>Failure: Failed to communicate to server</span>"; } } catch (e) { document.getElementById('formStatus').innerHTML = `<span style='background-color: red; color: white'>Error: ${e}</span>`; } } </script> </body> <script> document.getElementById('year').textContent = new Date().getFullYear().toString() </script> </html>