Browse Source

Add frontend for password reset

Lee Morgan 6 years ago
parent
commit
95b62897a3

+ 5 - 1
controllers/otherData.js

@@ -185,5 +185,9 @@ module.exports = {
             .catch((err)=>{
                 return res.json("Error: unable to retrieve user data");
             });
+    },
+
+    resetPassword: function(req, res){
+        console.log(req.body);
     }
-}
+} 

+ 4 - 0
controllers/renderer.js

@@ -189,5 +189,9 @@ module.exports = {
 
                 return res.redirect("/");
             });
+    },
+
+    displayPassReset: function(req, res){
+        return res.render("passResetPage/passReset");
     }
 }

+ 2 - 0
routes.js

@@ -11,6 +11,7 @@ module.exports = function(app){
     app.get("/dashboard", renderer.displayDashboard);
     app.get("/information", renderer.displayLegal);
     app.get("/data", renderer.displayData);
+    app.get("/resetpassword/*", renderer.displayPassReset);
 
     //Merchant
     app.post("/merchant/create/none", merchantData.createMerchantNone);
@@ -39,6 +40,7 @@ module.exports = function(app){
     app.get("/logout", otherData.logout);
     app.get("/cloverlogin", otherData.cloverRedirect);
     app.get("/cloverauth*", otherData.cloverAuth);
+    app.post("/resetpassword", otherData.resetPassword);
 
     app.post("/getdata", otherData.getData);
 

+ 10 - 0
views/passResetPage/passReset.css

@@ -0,0 +1,10 @@
+form > *{
+    margin: 15px;
+}
+
+.content{
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin-top: 15vh;
+}

+ 56 - 0
views/passResetPage/passReset.ejs

@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <title>The Subline</title>
+        <link rel="icon" type="img/png" href="/shared/images/logo.png">
+        <link rel="stylesheet" href="/passResetPage/passReset.css">
+        <link rel="stylesheet" href="/shared/shared.css">
+    </head>
+    <body>
+        <% include ../shared/header %>
+
+        <% include ../shared/banner %>
+
+        <div class="content">
+            <h1>Reset Password</h1>
+
+            <form action="/resetpassword" method="post" onsubmit="submitPass()">
+                <label>New Password:
+                    <input type="password" id="pass" name="pass" required>
+                </label>
+
+                <label>Confirm Password:
+                    <input type="password" id="confirmPass" name="confirmPass" required>
+                </label>
+
+                <input class="button" type="submit" value="Submit">
+            </form>
+        </div>
+
+        <script src="../shared/validation.js"></script>
+        <script>
+            let submitPass = ()=>{
+                event.preventDefault();
+
+                let pass = document.querySelector("#pass").value;
+                let confirmPass = document.querySelector("#confirmPass").value;
+
+                if(validator.merchant.password(pass, confirmPass)){
+                    let url = window.location.href;
+                    let hash = url.slice(url.indexOf("resetpassword/") + 14);
+                    
+                    let form = document.querySelector("form");
+
+                    let hidden = document.createElement("input");
+                    hidden.type = "hidden";
+                    hidden.name = "hash";
+                    hidden.value = hash;
+                    form.appendChild(hidden);
+
+                    form.submit();
+                }
+            }
+        </script>
+    </body>
+</html>