ccashfrontend/routes/settings.js
2021-06-16 11:14:41 +10:00

70 lines
2 KiB
JavaScript

const express = require("express");
const router = express.Router();
const path = require("path");
const { ensureAuthenticated } = require("../config/auth.js");
const { checkAdmin } = require("../config/admin.js");
var pug = require("pug");
const flash = require("connect-flash");
const expressValidator = require("express-validator");
const session = require("express-session");
const { postUser } = require("../helpers/functions.js");
const { CCashClient } = require("ccash-client-js");
const client = new CCashClient(process.env.BANKAPIURL);
router.get("/", ensureAuthenticated, function (req, res) {
let successes = req.session.successes;
req.session.successes = [];
let errors = req.session.errors;
req.session.errors = [];
res.render("settings", {
errors: errors,
successes: successes,
user: req.session.user,
admin: req.session.admin,
});
});
router.post("/pass", ensureAuthenticated, async function (req, res) {
let { attempt, new_pass, password2 } = req.body;
let patch;
if (attempt == undefined) {
attempt = "";
}
if (!new_pass || !password2) {
req.session.errors.push({ msg: "please fill in all fields" });
}
//check if match
if (new_pass != password2) {
req.session.errors.push({ msg: "Passwords don't match" });
}
//check if password is more than 6 characters
if (new_pass.length < 6) {
req.session.errors.push({ msg: "Password must be at least 6 characters" });
}
if (req.session.errors.length > 0) {
console.log(req.session.errors);
res.redirect("/settings");
} else {
patch = await client.changePassword(req.session.user, attempt, new_pass);
console.log(patch);
if (patch == -2) {
req.session.errors.push({
msg: "Password Wrong",
});
res.redirect("/settings");
} else {
req.session.regenerate(function (err) {
req.session.successes = [];
req.session.successes.push({
msg: "Change Password Successful, Please Login Again",
});
res.redirect("/login");
});
}
}
});
module.exports = router;