Răsfoiți Sursa

Add login for merchants

Lee Morgan 6 ani în urmă
părinte
comite
9966f2d9be
4 a modificat fișierele cu 41 adăugiri și 2 ștergeri
  1. 19 0
      controllers/home.js
  2. 1 0
      routes.js
  3. 15 2
      views/landingPage/landing.ejs
  4. 6 0
      views/landingPage/login.js

+ 19 - 0
controllers/home.js

@@ -555,5 +555,24 @@ module.exports = {
 
     unregistered: function(req, res){
         return res.redirect("/");
+    },
+
+    login: function(req, res){
+        Merchant.findOne({email: req.body.email})
+            .then((merchant)=>{
+                bcrypt.compare(req.body.password, merchant.password, (err, result)=>{
+                    if(result){
+                        req.session.user = merchant._id;
+                        return res.redirect("/inventory");
+                    }
+
+                    console.log(err);
+                    return res.redirect("/");
+                });
+            })
+            .catch((err)=>{
+                console.log(err);
+                return res.redirect("/");
+            });
     }
 }

+ 1 - 0
routes.js

@@ -29,4 +29,5 @@ module.exports = function(app){
 
     //Other
     app.get("/unregistered", home.unregistered);
+    app.post("/login", home.login);
 }

+ 15 - 2
views/landingPage/landing.ejs

@@ -11,11 +11,23 @@
         <% include ../shared/banner %>
 
         <div id="publicStrand">
-            <button>Login</button>
+            <button onclick="loginObj.display()">Login</button>
             <button onclick="posChoiceObj.display()">Register</button>
         </div>
 
-        <form id="loginStrand"></form>
+        <div id="loginStrand">
+            <form action="/login" method="post">
+                <label>Email:
+                    <input name="email" type="email" required>
+                </label>
+
+                <label>Password:
+                    <input name="password" type="password" required>
+                </label>
+
+                <input type="submit" value="Log In">
+            </form>
+        </div>
 
         <div id="posChoiceStrand">
             <h1>Choose your POS System</h1>
@@ -33,6 +45,7 @@
         <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
         <script src="../shared/validation.js"></script>
         <script src="/landingPage/public.js"></script>
+        <script src="/landingPage/login.js"></script>
         <script src="/landingPage/posChoice.js"></script>
         <script src="/landingPage/controller.js"></script>
     </body>

+ 6 - 0
views/landingPage/login.js

@@ -0,0 +1,6 @@
+let loginObj = {
+    display: function(){
+        controller.clearScreen();
+        controller.loginStrand.style.display = "flex";
+    }
+}