lots of improvements

This commit is contained in:
Expand-sys 2021-06-14 17:15:08 +10:00
parent 2610c74cd4
commit 7bf74a55b1
6 changed files with 199 additions and 230 deletions

View file

@ -1,18 +1,11 @@
const got = require("got"); const { CCashClient } = require("ccash-client-js");
const client = new CCashClient(process.env.BANKAPIURL);
async function postUser(name, password) { async function postUser(name, password) {
console.log(process.env.BANKAPIURL); console.log(process.env.BANKAPIURL);
try { try {
const { body } = await got.post( return await client.addUser(name, password);
process.env.BANKAPIURL + "BankF/user/" + name,
{
headers: {
Password: password,
},
responseType: "json",
}
);
return body;
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }

138
index.js
View file

@ -6,7 +6,7 @@ const bodyParser = require("body-parser");
const expressValidator = require("express-validator"); const expressValidator = require("express-validator");
const flash = require("connect-flash"); const flash = require("connect-flash");
const session = require("express-session"); const session = require("express-session");
const { postUser } = require("./helpers/functions.js");
const { ensureAuthenticated } = require("./config/auth.js"); const { ensureAuthenticated } = require("./config/auth.js");
const app = express(); const app = express();
const MemoryStore = require("memorystore")(session); const MemoryStore = require("memorystore")(session);
@ -15,8 +15,10 @@ const dotenv = require("dotenv");
const fs = require("fs"); const fs = require("fs");
let Log = require("./schemas/log.js"); let Log = require("./schemas/log.js");
const mongoose = require("mongoose"); const mongoose = require("mongoose");
const { CCashClient } = require("ccash-client-js");
dotenv.config(); dotenv.config();
const { postUser } = require("./helpers/functions.js");
const client = new CCashClient(process.env.BANKAPIURL);
app.set("views", path.join(__dirname, "views")); app.set("views", path.join(__dirname, "views"));
app.set("view engine", "pug"); app.set("view engine", "pug");
app.use(flash()); app.use(flash());
@ -147,13 +149,13 @@ app.get("/", async function (req, res) {
} else { } else {
let checkalive; let checkalive;
try { try {
checkalive = await got(process.env.BANKAPIURL + "BankF/help"); checkalive = await client.help();
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
let alive = false; let alive = false;
try { try {
if (checkalive.body) { if (checkalive) {
alive = true; alive = true;
} }
} catch (err) { } catch (err) {
@ -184,71 +186,56 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
} }
let balance = 0; let balance = 0;
try { try {
balance = await got( balance = await client.balance(req.session.user);
process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal"
);
balance = JSON.parse(balance.body);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
let logsent; let logsent;
console.log("start " + Date.now()); console.log("start " + Date.now());
try { try {
logsent = await got( const { user, password } = req.session;
process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", logsent = await client.log(user, password);
{
headers: {
Password: req.session.password,
},
responseType: "json",
}
);
} catch (e) { } catch (e) {
console.log(e); console.log(e);
} }
console.log(logsent.body); console.log(logsent);
console.log("query finished " + Date.now()); console.log("query finished " + Date.now());
logsent = logsent.body;
logsent = logsent.value;
let logrec = logsent; let logrec = logsent;
let graphlog = logsent; let graphlog = logsent;
if (graphlog != null) { console.log(graphlog);
if (graphlog != 0 && graphlog != null) {
graphlog = graphlog.reverse(); graphlog = graphlog.reverse();
} }
console.log(graphlog);
let graphdata = ""; let graphdata = "";
let currentbal = balance.value; let currentbal = balance;
if (graphlog != null) { if (graphlog != 0 && graphlog != null) {
for (i = graphlog.length - 1; i > -1; i--) { graphdata =
graphdata + ", [" + parseInt(graphlog.length) + "," + balance + "]";
for (i = 0; i < graphlog.length; i++) {
if (graphlog[i].from == req.session.user) { if (graphlog[i].from == req.session.user) {
currentbal = parseInt(currentbal) + parseInt(graphlog[i].amount);
graphdata = graphdata + ", [" + parseInt(i) + "," + currentbal + "]";
} else {
currentbal = parseInt(currentbal) - parseInt(graphlog[i].amount); currentbal = parseInt(currentbal) - parseInt(graphlog[i].amount);
graphdata = graphdata + ", [" + parseInt(i) + "," + currentbal + "]"; graphdata = graphdata + ", [" + parseInt(i) + "," + currentbal + "]";
} else {
currentbal = parseInt(currentbal) + parseInt(graphlog[i].amount);
graphdata = graphdata + ", [" + parseInt(i) + "," + currentbal + "]";
} }
} }
graphdata =
", [" + parseInt(graphlog.length) + "," + balance.value + "]" + graphdata;
console.log(balance); console.log(balance);
graphdata = '["transaction", "balance"]' + graphdata;
console.log(JSON.stringify(graphdata)); console.log(JSON.stringify(graphdata));
} else { } else {
graphlog = undefined; graphlog = undefined;
} }
if (graphdata != "") { if (graphdata != "") {
graphdata =
", [" + parseInt(graphlog.length) + "," + balance.value + "]" + graphdata;
graphdata = '["transaction", "balance"]' + graphdata; graphdata = '["transaction", "balance"]' + graphdata;
} }
console.log(balance); console.log(balance);
console.log(JSON.stringify(graphdata)); console.log(JSON.stringify(graphdata));
if (logsent == 1 || logsent == -1 || logsent == null) { if (logsent == null) {
logsent = undefined; logsent = undefined;
} else { } else {
logsent = await logsent.filter(({ from }) => from === req.session.user); logsent = await logsent.filter(({ from }) => from === req.session.user);
} }
if (logrec === 1 || logrec === -1 || logrec === null) { if (logrec == null) {
logrec = undefined; logrec = undefined;
} else { } else {
logrec = await logrec.filter(({ to }) => to === req.session.user); logrec = await logrec.filter(({ to }) => to === req.session.user);
@ -277,7 +264,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
logrec: logrec, logrec: logrec,
logsent: logsent, logsent: logsent,
user: req.session.user, user: req.session.user,
balance: balance.value, balance: balance,
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
sucesses: successes, sucesses: successes,
@ -290,10 +277,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
app.post("/sendfunds", async function (req, res) { app.post("/sendfunds", async function (req, res) {
let balance = 0; let balance = 0;
try { try {
balance = await got( balance = await client.balance(req.session.user);
process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal"
);
balance = JSON.parse(balance.body);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
@ -302,17 +286,9 @@ app.post("/sendfunds", async function (req, res) {
let successes = []; let successes = [];
req.session.errors = []; req.session.errors = [];
let result = {}; let result = {};
result = await got.post(process.env.BANKAPIURL + "BankF/sendfunds", { result = await client.sendFunds(a_name, senderpass, name, parseInt(amount));
json: {
a_name: a_name,
b_name: name,
amount: parseInt(amount),
attempt: senderpass,
},
responseType: "json",
});
if (result.body.value == true || result.body.value) { if (result == true || result) {
req.session.success = true; req.session.success = true;
//post details //post details
res.redirect("/BankF"); res.redirect("/BankF");
@ -324,12 +300,16 @@ app.post("/sendfunds", async function (req, res) {
app.post("/register", async function (req, res) { app.post("/register", async function (req, res) {
var { name, password, password2 } = req.body; var { name, password, password2 } = req.body;
let checkuser;
try {
checkuser = await client.contains(name);
} catch (e) {
console.log(e);
}
let checkuser = await got(process.env.BANKAPIURL + "BankF/contains/" + name);
checkuser = JSON.parse(checkuser.body).value;
req.session.errors = []; req.session.errors = [];
req.session.successes = []; req.session.successes = [];
if (checkuser == false) { if (!checkuser) {
if (!name || !password || !password2) { if (!name || !password || !password2) {
req.session.errors.push({ msg: "please fill in all fields" }); req.session.errors.push({ msg: "please fill in all fields" });
} }
@ -360,51 +340,33 @@ app.post("/login", async function (req, res) {
res.redirect("/"); res.redirect("/");
} }
req.session.regenerate(function (err) {}); req.session.regenerate(function (err) {});
let { name, password } = req.body; const { name, password } = req.body;
let adminTest; let adminTest;
req.session.errors = [];
let verified;
try { try {
verified = await got( adminTest = await client.adminVerifyPass(password);
process.env.BANKAPIURL + "BankF/" + name + "/pass/verify",
{
headers: {
Password: password,
},
responseType: "json",
}
);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} finally { }
if (verified.body.value == -2) { if (adminTest) {
req.session.errors.push({ msg: "Password wrong" }); req.session.admin = adminTest;
res.redirect("/login"); req.session.adminp = password;
} else if (verified.body.value == 1) {
console.log(name);
req.session.user = name; req.session.user = name;
req.session.password = password; req.session.password = password;
res.redirect("/BankF"); res.redirect("/BankF");
} else if (verified.body.value == -1) { } else {
req.session.errors = []; let verified;
req.session.errors.push({ msg: "User not found" });
res.redirect("/login");
} else if (verified.body.value == 0) {
console.log(verified.body.value + " Error on verified");
try { try {
adminTest = await got(process.env.BANKAPIURL + "BankF/admin/verify", { verified = await client.verifyPassword(name, password);
headers: {
Password: password,
},
responseType: "json",
});
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} } finally {
console.log(adminTest.body); if (!verified) {
if (adminTest.body) { req.session.errors = [];
req.session.admin = adminTest.body.value; req.session.errors.push({ msg: "Password wrong" });
req.session.adminp = password; res.redirect("/login");
} else {
req.session.user = name;
req.session.password = password;
res.redirect("/BankF"); res.redirect("/BankF");
} }
} }

81
package-lock.json generated
View file

@ -8,6 +8,7 @@
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"ccash-client-js": "^1.6.0",
"connect-flash": "^0.1.1", "connect-flash": "^0.1.1",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"express": "^4.17.1", "express": "^4.17.1",
@ -167,6 +168,14 @@
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
"integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
}, },
"node_modules/axios": {
"version": "0.21.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"dependencies": {
"follow-redirects": "^1.10.0"
}
},
"node_modules/babel-walk": { "node_modules/babel-walk": {
"version": "3.0.0-canary-5", "version": "3.0.0-canary-5",
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
@ -265,6 +274,15 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/ccash-client-js": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.0.tgz",
"integrity": "sha512-uNLrecsFLS4S3EIzeShnOrcIPYub36K1vG/dq13EL8V76UWeaWB3iWZEO8l2h6VQTXrfSa9PmM/+rAb3BQcahQ==",
"dependencies": {
"axios": "^0.21.1",
"class-transformer": "^0.4.0"
}
},
"node_modules/character-parser": { "node_modules/character-parser": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
@ -273,6 +291,11 @@
"is-regex": "^1.0.3" "is-regex": "^1.0.3"
} }
}, },
"node_modules/class-transformer": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.4.0.tgz",
"integrity": "sha512-ETWD/H2TbWbKEi7m9N4Km5+cw1hNcqJSxlSYhsLsNjQzWWiZIYA1zafxpK9PwVfaZ6AqR5rrjPVUBGESm5tQUA=="
},
"node_modules/clone-response": { "node_modules/clone-response": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
@ -560,6 +583,25 @@
"node": ">= 0.8" "node": ">= 0.8"
} }
}, },
"node_modules/follow-redirects": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
"integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/forwarded": { "node_modules/forwarded": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@ -1053,9 +1095,9 @@
} }
}, },
"node_modules/normalize-url": { "node_modules/normalize-url": {
"version": "4.5.0", "version": "4.5.1",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
@ -1755,6 +1797,14 @@
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
"integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
}, },
"axios": {
"version": "0.21.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"requires": {
"follow-redirects": "^1.10.0"
}
},
"babel-walk": { "babel-walk": {
"version": "3.0.0-canary-5", "version": "3.0.0-canary-5",
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
@ -1832,6 +1882,15 @@
"get-intrinsic": "^1.0.2" "get-intrinsic": "^1.0.2"
} }
}, },
"ccash-client-js": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.0.tgz",
"integrity": "sha512-uNLrecsFLS4S3EIzeShnOrcIPYub36K1vG/dq13EL8V76UWeaWB3iWZEO8l2h6VQTXrfSa9PmM/+rAb3BQcahQ==",
"requires": {
"axios": "^0.21.1",
"class-transformer": "^0.4.0"
}
},
"character-parser": { "character-parser": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
@ -1840,6 +1899,11 @@
"is-regex": "^1.0.3" "is-regex": "^1.0.3"
} }
}, },
"class-transformer": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.4.0.tgz",
"integrity": "sha512-ETWD/H2TbWbKEi7m9N4Km5+cw1hNcqJSxlSYhsLsNjQzWWiZIYA1zafxpK9PwVfaZ6AqR5rrjPVUBGESm5tQUA=="
},
"clone-response": { "clone-response": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
@ -2070,6 +2134,11 @@
"unpipe": "~1.0.0" "unpipe": "~1.0.0"
} }
}, },
"follow-redirects": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
"integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg=="
},
"forwarded": { "forwarded": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@ -2426,9 +2495,9 @@
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
}, },
"normalize-url": { "normalize-url": {
"version": "4.5.0", "version": "4.5.1",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",

View file

@ -1,5 +1,6 @@
{ {
"dependencies": { "dependencies": {
"ccash-client-js": "^1.6.0",
"connect-flash": "^0.1.1", "connect-flash": "^0.1.1",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"express": "^4.17.1", "express": "^4.17.1",

View file

@ -12,6 +12,9 @@ const got = require("got");
const MemoryStore = require("memorystore")(session); const MemoryStore = require("memorystore")(session);
const fs = require("fs"); const fs = require("fs");
const mongoose = require("mongoose"); const mongoose = require("mongoose");
const { CCashClient } = require("ccash-client-js");
const client = new CCashClient(process.env.BANKAPIURL);
console.log("Sen was here"); console.log("Sen was here");
function mongo() { function mongo() {
@ -36,9 +39,14 @@ function mongo() {
} }
router.get("/", checkAdmin, function (req, res) { router.get("/", checkAdmin, function (req, res) {
let successes = req.session.successes;
let errors = req.session.errors;
res.render("adminsettings", { res.render("adminsettings", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
errors: errors,
successes: successes,
marketplace: process.env.MARKETPLACE, marketplace: process.env.MARKETPLACE,
random: papy(), random: papy(),
}); });
@ -46,10 +54,9 @@ router.get("/", checkAdmin, function (req, res) {
router.post("/user", checkAdmin, async function (req, res) { router.post("/user", checkAdmin, async function (req, res) {
let { name, init_pass, init_bal, password2 } = req.body; let { name, init_pass, init_bal, password2 } = req.body;
let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name); let contains = await client.contains(name);
contains = JSON.parse(contains.body).value; req.session.errors = [];
let errors = []; req.session.successes = [];
let successes = [];
if (contains == true) { if (contains == true) {
errors.push({ msg: "User already exists" }); errors.push({ msg: "User already exists" });
res.render("adminsettings", { res.render("adminsettings", {
@ -57,165 +64,111 @@ router.post("/user", checkAdmin, async function (req, res) {
}); });
} else { } else {
if (!name || !init_pass || !init_bal || !password2) { if (!name || !init_pass || !init_bal || !password2) {
errors.push({ msg: "please fill in all fields" }); req.session.errors.push({ msg: "please fill in all fields" });
} }
//check if match //check if match
if (init_pass !== password2) { if (init_pass !== password2) {
errors.push({ msg: "Passwords don't match" }); req.session.errors.push({ msg: "Passwords don't match" });
} }
//check if password is more than 6 characters //check if password is more than 6 characters
if (init_pass.length < 6) { if (init_pass.length < 6) {
errors.push({ msg: "Password must be at least 6 characters" }); req.session.errors.push({
msg: "Password must be at least 6 characters",
});
} }
let post; let post;
let successes = []; let successes = [];
try { try {
post = await got.post(process.env.BANKAPIURL + "BankF/admin/user", { post = await client.adminAddUser(
json: { name,
name: name, req.session.adminp,
attempt: req.session.adminp, init_pass,
init_bal: parseInt(init_bal), parseInt(init_bal)
init_pass: init_pass, );
},
responseType: "json",
});
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
if (post.body.value == true) { if (post) {
successes.push({ msg: "Account Creation Successful" }); successes.push({ msg: "Account Creation Successful" });
} }
} }
res.render("adminsettings", { res.redirect("/admin");
user: req.session.user,
admin: req.session.admin,
successes: successes,
marketplace: process.env.MARKETPLACE,
random: papy(),
});
}); });
router.post("/baluser", checkAdmin, async function (req, res) { router.post("/baluser", checkAdmin, async function (req, res) {
let { name } = req.body; let { name } = req.body;
let balance; let balance;
let successes = []; req.session.successes = [];
let errors = []; req.session.errors = [];
try { try {
balance = await got(process.env.BANKAPIURL + "BankF/" + name + "/bal"); balance = await client.balance(name);
balance = JSON.parse(balance.body);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
if (balance.value == -1 || balance.value == undefined) { balance = parseInt(balance);
errors.push({ msg: "User not found" }); console.log(balance);
if (balance < 0) {
req.session.errors.push({ msg: "User not found" });
} else { } else {
successes.push({ req.session.successes.push({
msg: "User: " + name + " has " + balance.value + " monies", msg: "User: " + name + " has " + balance.value + " monies",
}); });
} }
res.render("adminsettings", { res.redirect("/admin");
user: req.session.user,
admin: req.session.admin,
successes: successes,
errors: errors,
marketplace: process.env.MARKETPLACE,
random: papy(),
});
}); });
router.post("/bal", checkAdmin, async function (req, res) { router.post("/bal", checkAdmin, async function (req, res) {
let { name, amount } = req.body; let { name, amount } = req.body;
let patch; let patch;
let successes = []; req.session.successes = [];
req.session.errors = [];
try { try {
patch = await got.patch( patch = await client.setBalance(name, req.session.adminp, parseInt(amount));
process.env.BANKAPIURL + "BankF/admin/" + name + "/bal",
{
json: {
name: name,
attempt: req.session.adminp,
amount: parseInt(amount),
},
responseType: "json",
}
);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
if ((await patch.body.value) == true) { if (patch) {
successes.push({ msg: "Change Funds Successful" }); req.session.successes.push({ msg: "Change Funds Successful" });
} }
res.render("adminsettings", { res.redirect("/admin");
user: req.session.user,
admin: req.session.admin,
successes: successes,
marketplace: process.env.MARKETPLACE,
random: papy(),
});
}); });
router.post("/userdelete", checkAdmin, async function (req, res) { router.post("/userdelete", checkAdmin, async function (req, res) {
let { name, attempt } = req.body; let { name, attempt } = req.body;
console.log(name); console.log(name);
let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name); let contains = await client.contains(name);
contains = JSON.parse(contains.body).value;
let deleteUser; let deleteUser;
let successes = []; let successes = [];
let errors = []; let errors = [];
if (attempt != req.session.adminp) { if (attempt != req.session.adminp) {
errors.push({ msg: "Wrong Admin Password" }); req.session.errors.push({ msg: "Wrong Admin Password" });
} }
console.log(contains); console.log(contains);
if (contains == true) { if (contains == true) {
deleteUser = got.delete(process.env.BANKAPIURL + "BankF/admin/user", { deleteUser = client.adminDeleteUser(name, attempt);
json: { req.session.successes.push({ msg: "User Deletion Successful" });
name: name,
attempt: attempt,
},
responseType: "json",
});
successes.push({ msg: "User Deletion Successful" });
} else { } else {
errors.push({ msg: "User Deletion Failed, User Not Found" }); req.session.errors.push({ msg: "User Deletion Failed, User Not Found" });
} }
res.render("adminsettings", { res.redirect("/admin");
user: req.session.user,
admin: req.session.admin,
successes: successes,
errors: errors,
marketplace: process.env.MARKETPLACE,
random: papy(),
});
}); });
router.post("/destroyallsessions", checkAdmin, async function (req, res) { router.post("/destroyallsessions", checkAdmin, async function (req, res) {
let { attempt } = req.body; let { attempt } = req.body;
let adminTest; let adminTest;
let errors = []; req.session.errors = [];
try { try {
adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", { adminTest = await client.adminVerifyPass(attempt);
json: {
attempt: attempt,
},
responseType: "json",
});
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
console.log(adminTest.body.value);
if (adminTest) { if (adminTest) {
req.sessionStore.clear(function (err) { req.sessionStore.clear(function (err) {
console.log(err); console.log(err);
}); });
res.redirect("/"); res.redirect("/");
} else { } else {
errors.push({ msg: "failed admin password check" }); req.session.errors.push({ msg: "failed admin password check" });
res.render("adminsettings", { res.redirect("/admin");
user: req.session.user,
admin: req.session.admin,
errors: errors,
marketplace: process.env.MARKETPLACE,
random: papy(),
});
} }
}); });
@ -279,12 +232,7 @@ router.post("/mongodb", checkAdmin, async function (req, res) {
router.post("/close", checkAdmin, async function (req, res) { router.post("/close", checkAdmin, async function (req, res) {
let { attempt } = req.body; let { attempt } = req.body;
let close; let close;
close = got.post(process.env.BANKAPIURL + "BankF/admin/close", { close = client.close();
json: {
attempt: attempt,
},
responseType: "json",
});
res.redirect("../"); res.redirect("../");
}); });
function papy() { function papy() {

View file

@ -8,7 +8,9 @@ const flash = require("connect-flash");
const expressValidator = require("express-validator"); const expressValidator = require("express-validator");
const session = require("express-session"); const session = require("express-session");
const { postUser } = require("../helpers/functions.js"); const { postUser } = require("../helpers/functions.js");
const got = require("got"); const { CCashClient } = require("ccash-client-js");
const client = new CCashClient(process.env.BANKAPIURL);
router.get("/", ensureAuthenticated, function (req, res) { router.get("/", ensureAuthenticated, function (req, res) {
let successes = req.session.successes; let successes = req.session.successes;
@ -27,7 +29,10 @@ router.get("/", ensureAuthenticated, function (req, res) {
router.post("/pass", ensureAuthenticated, async function (req, res) { router.post("/pass", ensureAuthenticated, async function (req, res) {
let { attempt, new_pass, password2 } = req.body; let { attempt, new_pass, password2 } = req.body;
let patch; let patch;
if (!attempt || !new_pass || !password2) { if (attempt == undefined) {
attempt = "";
}
if (!new_pass || !password2) {
req.session.errors.push({ msg: "please fill in all fields" }); req.session.errors.push({ msg: "please fill in all fields" });
} }
//check if match //check if match
@ -44,31 +49,22 @@ router.post("/pass", ensureAuthenticated, async function (req, res) {
res.redirect("/settings"); res.redirect("/settings");
} else { } else {
try { try {
patch = await got.patch(process.env.BANKAPIURL + "BankF/changepass", { patch = await client.changePassword(req.session.user, attempt, new_pass);
json: {
name: req.session.user,
attempt: attempt,
new_pass: new_pass,
},
responseType: "json",
});
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
console.log(patch.body); console.log(patch);
if (patch.body.value == 0) { if (patch) {
req.session.errors.push({ req.session.errors.push({
msg: "Password Wrong", msg: "Password Wrong",
}); });
res.redirect("/settings"); res.redirect("/settings");
} else { } else {
req.session.regenerate(function (err) { req.session.regenerate(function (err) {
if (patch.body.value == 1) {
req.session.successes = []; req.session.successes = [];
req.session.successes.push({ req.session.successes.push({
msg: "Change Password Successful, Please Login Again", msg: "Change Password Successful, Please Login Again",
}); });
}
res.redirect("/login"); res.redirect("/login");
}); });
} }