|
@@ -1,9 +1,11 @@
|
|
|
const Merchant = require("../models/merchant.js");
|
|
const Merchant = require("../models/merchant.js");
|
|
|
|
|
|
|
|
const helper = require("./helper.js");
|
|
const helper = require("./helper.js");
|
|
|
-const mailgun = require("mailgun-js")({apiKey: process.env.MG_SUBLINE_APIKEY, domain: "mail.thesubline.net"});
|
|
|
|
|
const passwordReset = require("../emails/passwordReset.js");
|
|
const passwordReset = require("../emails/passwordReset.js");
|
|
|
|
|
|
|
|
|
|
+const mailgun = require("mailgun-js")({apiKey: process.env.MG_SUBLINE_APIKEY, domain: "mail.thesubline.net"});
|
|
|
|
|
+const bcrypt = require("bcryptjs");
|
|
|
|
|
+
|
|
|
module.exports = {
|
|
module.exports = {
|
|
|
enterEmail: function(req, res){
|
|
enterEmail: function(req, res){
|
|
|
return res.render("passwordResetPages/email");
|
|
return res.render("passwordResetPages/email");
|
|
@@ -25,7 +27,7 @@ module.exports = {
|
|
|
subject: "Password Reset",
|
|
subject: "Password Reset",
|
|
|
html: passwordReset({
|
|
html: passwordReset({
|
|
|
name: merchant.name,
|
|
name: merchant.name,
|
|
|
- link: `${process.env.SITE}/reset/${merchant.verifyId}`
|
|
|
|
|
|
|
+ link: `${process.env.SITE}/reset/${merchant._id}/${merchant.verifyId}`
|
|
|
})
|
|
})
|
|
|
};
|
|
};
|
|
|
mailgun.messages().send(mailgunData, (err, body)=>{
|
|
mailgun.messages().send(mailgunData, (err, body)=>{
|
|
@@ -46,6 +48,32 @@ module.exports = {
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
enterPassword: function(req, res){
|
|
enterPassword: function(req, res){
|
|
|
- return res.render("passwordResetPages/password", {code: req.params.code});
|
|
|
|
|
|
|
+ return res.render("passwordResetPages/password", {id: req.params.id, code: req.params.code});
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ resetPassword: function(req, res){
|
|
|
|
|
+ Merchant.findOne({_id: req.body.id})
|
|
|
|
|
+ .then((merchant)=>{
|
|
|
|
|
+ if(merchant.verifyId !== req.body.code){
|
|
|
|
|
+ req.session.error = "YOUR ACCOUNT COULD NOT BE VERIFIED. PLEASE CONTACT US IF THE PROBLEM PERSISTS.";
|
|
|
|
|
+ return res.redirect("/");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const salt = bcrypt.genSaltSync(10);
|
|
|
|
|
+ const hash = bcrypt.hashSync(req.body.password, salt);
|
|
|
|
|
+
|
|
|
|
|
+ merchant.password = hash;
|
|
|
|
|
+ merchant.verifyId = undefined;
|
|
|
|
|
+
|
|
|
|
|
+ return merchant.save();
|
|
|
|
|
+ })
|
|
|
|
|
+ .then((merchant)=>{
|
|
|
|
|
+ req.session.error = "PASSWORD SUCCESSFULLY UPDATED. PLEASE LOG IN";
|
|
|
|
|
+ return res.redirect("/");
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((err)=>{
|
|
|
|
|
+ req.session.error = "ERROR: UNABLE TO UPDATE YOUR PASSWORD AT THIS TIME";
|
|
|
|
|
+ return res.redirect("/");
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|