mirror of
https://github.com/Expand-sys/ccashfrontend
synced 2026-03-22 12:37:13 +11:00
lots of improvements
This commit is contained in:
parent
2610c74cd4
commit
7bf74a55b1
6 changed files with 199 additions and 230 deletions
|
|
@ -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) {
|
||||
console.log(process.env.BANKAPIURL);
|
||||
try {
|
||||
const { body } = await got.post(
|
||||
process.env.BANKAPIURL + "BankF/user/" + name,
|
||||
{
|
||||
headers: {
|
||||
Password: password,
|
||||
},
|
||||
responseType: "json",
|
||||
}
|
||||
);
|
||||
return body;
|
||||
return await client.addUser(name, password);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
|
|
|
|||
138
index.js
138
index.js
|
|
@ -6,7 +6,7 @@ const bodyParser = require("body-parser");
|
|||
const expressValidator = require("express-validator");
|
||||
const flash = require("connect-flash");
|
||||
const session = require("express-session");
|
||||
const { postUser } = require("./helpers/functions.js");
|
||||
|
||||
const { ensureAuthenticated } = require("./config/auth.js");
|
||||
const app = express();
|
||||
const MemoryStore = require("memorystore")(session);
|
||||
|
|
@ -15,8 +15,10 @@ const dotenv = require("dotenv");
|
|||
const fs = require("fs");
|
||||
let Log = require("./schemas/log.js");
|
||||
const mongoose = require("mongoose");
|
||||
const { CCashClient } = require("ccash-client-js");
|
||||
dotenv.config();
|
||||
|
||||
const { postUser } = require("./helpers/functions.js");
|
||||
const client = new CCashClient(process.env.BANKAPIURL);
|
||||
app.set("views", path.join(__dirname, "views"));
|
||||
app.set("view engine", "pug");
|
||||
app.use(flash());
|
||||
|
|
@ -147,13 +149,13 @@ app.get("/", async function (req, res) {
|
|||
} else {
|
||||
let checkalive;
|
||||
try {
|
||||
checkalive = await got(process.env.BANKAPIURL + "BankF/help");
|
||||
checkalive = await client.help();
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
let alive = false;
|
||||
try {
|
||||
if (checkalive.body) {
|
||||
if (checkalive) {
|
||||
alive = true;
|
||||
}
|
||||
} catch (err) {
|
||||
|
|
@ -184,71 +186,56 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
|||
}
|
||||
let balance = 0;
|
||||
try {
|
||||
balance = await got(
|
||||
process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal"
|
||||
);
|
||||
balance = JSON.parse(balance.body);
|
||||
balance = await client.balance(req.session.user);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
let logsent;
|
||||
console.log("start " + Date.now());
|
||||
try {
|
||||
logsent = await got(
|
||||
process.env.BANKAPIURL + "BankF/" + req.session.user + "/log",
|
||||
{
|
||||
headers: {
|
||||
Password: req.session.password,
|
||||
},
|
||||
responseType: "json",
|
||||
}
|
||||
);
|
||||
const { user, password } = req.session;
|
||||
logsent = await client.log(user, password);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
console.log(logsent.body);
|
||||
console.log(logsent);
|
||||
console.log("query finished " + Date.now());
|
||||
logsent = logsent.body;
|
||||
logsent = logsent.value;
|
||||
let logrec = logsent;
|
||||
let graphlog = logsent;
|
||||
if (graphlog != null) {
|
||||
console.log(graphlog);
|
||||
if (graphlog != 0 && graphlog != null) {
|
||||
graphlog = graphlog.reverse();
|
||||
}
|
||||
console.log(graphlog);
|
||||
let graphdata = "";
|
||||
let currentbal = balance.value;
|
||||
if (graphlog != null) {
|
||||
for (i = graphlog.length - 1; i > -1; i--) {
|
||||
let currentbal = balance;
|
||||
if (graphlog != 0 && graphlog != null) {
|
||||
graphdata =
|
||||
graphdata + ", [" + parseInt(graphlog.length) + "," + balance + "]";
|
||||
for (i = 0; i < graphlog.length; i++) {
|
||||
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);
|
||||
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);
|
||||
graphdata = '["transaction", "balance"]' + graphdata;
|
||||
console.log(JSON.stringify(graphdata));
|
||||
} else {
|
||||
graphlog = undefined;
|
||||
}
|
||||
if (graphdata != "") {
|
||||
graphdata =
|
||||
", [" + parseInt(graphlog.length) + "," + balance.value + "]" + graphdata;
|
||||
graphdata = '["transaction", "balance"]' + graphdata;
|
||||
}
|
||||
console.log(balance);
|
||||
console.log(JSON.stringify(graphdata));
|
||||
if (logsent == 1 || logsent == -1 || logsent == null) {
|
||||
if (logsent == null) {
|
||||
logsent = undefined;
|
||||
} else {
|
||||
logsent = await logsent.filter(({ from }) => from === req.session.user);
|
||||
}
|
||||
if (logrec === 1 || logrec === -1 || logrec === null) {
|
||||
if (logrec == null) {
|
||||
logrec = undefined;
|
||||
} else {
|
||||
logrec = await logrec.filter(({ to }) => to === req.session.user);
|
||||
|
|
@ -277,7 +264,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
|||
logrec: logrec,
|
||||
logsent: logsent,
|
||||
user: req.session.user,
|
||||
balance: balance.value,
|
||||
balance: balance,
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
sucesses: successes,
|
||||
|
|
@ -290,10 +277,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
|||
app.post("/sendfunds", async function (req, res) {
|
||||
let balance = 0;
|
||||
try {
|
||||
balance = await got(
|
||||
process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal"
|
||||
);
|
||||
balance = JSON.parse(balance.body);
|
||||
balance = await client.balance(req.session.user);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
|
|
@ -302,17 +286,9 @@ app.post("/sendfunds", async function (req, res) {
|
|||
let successes = [];
|
||||
req.session.errors = [];
|
||||
let result = {};
|
||||
result = await got.post(process.env.BANKAPIURL + "BankF/sendfunds", {
|
||||
json: {
|
||||
a_name: a_name,
|
||||
b_name: name,
|
||||
amount: parseInt(amount),
|
||||
attempt: senderpass,
|
||||
},
|
||||
responseType: "json",
|
||||
});
|
||||
result = await client.sendFunds(a_name, senderpass, name, parseInt(amount));
|
||||
|
||||
if (result.body.value == true || result.body.value) {
|
||||
if (result == true || result) {
|
||||
req.session.success = true;
|
||||
//post details
|
||||
res.redirect("/BankF");
|
||||
|
|
@ -324,12 +300,16 @@ app.post("/sendfunds", async function (req, res) {
|
|||
|
||||
app.post("/register", async function (req, res) {
|
||||
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.successes = [];
|
||||
if (checkuser == false) {
|
||||
if (!checkuser) {
|
||||
if (!name || !password || !password2) {
|
||||
req.session.errors.push({ msg: "please fill in all fields" });
|
||||
}
|
||||
|
|
@ -360,51 +340,33 @@ app.post("/login", async function (req, res) {
|
|||
res.redirect("/");
|
||||
}
|
||||
req.session.regenerate(function (err) {});
|
||||
let { name, password } = req.body;
|
||||
const { name, password } = req.body;
|
||||
let adminTest;
|
||||
req.session.errors = [];
|
||||
let verified;
|
||||
try {
|
||||
verified = await got(
|
||||
process.env.BANKAPIURL + "BankF/" + name + "/pass/verify",
|
||||
{
|
||||
headers: {
|
||||
Password: password,
|
||||
},
|
||||
responseType: "json",
|
||||
}
|
||||
);
|
||||
adminTest = await client.adminVerifyPass(password);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
} finally {
|
||||
if (verified.body.value == -2) {
|
||||
req.session.errors.push({ msg: "Password wrong" });
|
||||
res.redirect("/login");
|
||||
} else if (verified.body.value == 1) {
|
||||
console.log(name);
|
||||
}
|
||||
if (adminTest) {
|
||||
req.session.admin = adminTest;
|
||||
req.session.adminp = password;
|
||||
req.session.user = name;
|
||||
req.session.password = password;
|
||||
res.redirect("/BankF");
|
||||
} else if (verified.body.value == -1) {
|
||||
req.session.errors = [];
|
||||
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");
|
||||
} else {
|
||||
let verified;
|
||||
try {
|
||||
adminTest = await got(process.env.BANKAPIURL + "BankF/admin/verify", {
|
||||
headers: {
|
||||
Password: password,
|
||||
},
|
||||
responseType: "json",
|
||||
});
|
||||
verified = await client.verifyPassword(name, password);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
console.log(adminTest.body);
|
||||
if (adminTest.body) {
|
||||
req.session.admin = adminTest.body.value;
|
||||
req.session.adminp = password;
|
||||
} finally {
|
||||
if (!verified) {
|
||||
req.session.errors = [];
|
||||
req.session.errors.push({ msg: "Password wrong" });
|
||||
res.redirect("/login");
|
||||
} else {
|
||||
req.session.user = name;
|
||||
req.session.password = password;
|
||||
res.redirect("/BankF");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
81
package-lock.json
generated
81
package-lock.json
generated
|
|
@ -8,6 +8,7 @@
|
|||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"ccash-client-js": "^1.6.0",
|
||||
"connect-flash": "^0.1.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"express": "^4.17.1",
|
||||
|
|
@ -167,6 +168,14 @@
|
|||
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
|
||||
"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": {
|
||||
"version": "3.0.0-canary-5",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
||||
|
|
@ -273,6 +291,11 @@
|
|||
"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": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
|
||||
|
|
@ -560,6 +583,25 @@
|
|||
"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": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||
|
|
@ -1053,9 +1095,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/normalize-url": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
|
||||
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
|
||||
"version": "4.5.1",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
|
||||
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
|
|
@ -1755,6 +1797,14 @@
|
|||
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
|
||||
"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": {
|
||||
"version": "3.0.0-canary-5",
|
||||
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
|
||||
|
|
@ -1832,6 +1882,15 @@
|
|||
"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": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
||||
|
|
@ -1840,6 +1899,11 @@
|
|||
"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": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
|
||||
|
|
@ -2070,6 +2134,11 @@
|
|||
"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": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||
|
|
@ -2426,9 +2495,9 @@
|
|||
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
|
||||
},
|
||||
"normalize-url": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
|
||||
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
|
||||
"version": "4.5.1",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
|
||||
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"ccash-client-js": "^1.6.0",
|
||||
"connect-flash": "^0.1.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"express": "^4.17.1",
|
||||
|
|
|
|||
152
routes/admin.js
152
routes/admin.js
|
|
@ -12,6 +12,9 @@ const got = require("got");
|
|||
const MemoryStore = require("memorystore")(session);
|
||||
const fs = require("fs");
|
||||
const mongoose = require("mongoose");
|
||||
const { CCashClient } = require("ccash-client-js");
|
||||
|
||||
const client = new CCashClient(process.env.BANKAPIURL);
|
||||
console.log("Sen was here");
|
||||
|
||||
function mongo() {
|
||||
|
|
@ -36,9 +39,14 @@ function mongo() {
|
|||
}
|
||||
|
||||
router.get("/", checkAdmin, function (req, res) {
|
||||
let successes = req.session.successes;
|
||||
let errors = req.session.errors;
|
||||
|
||||
res.render("adminsettings", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
errors: errors,
|
||||
successes: successes,
|
||||
marketplace: process.env.MARKETPLACE,
|
||||
random: papy(),
|
||||
});
|
||||
|
|
@ -46,10 +54,9 @@ router.get("/", checkAdmin, function (req, res) {
|
|||
|
||||
router.post("/user", checkAdmin, async function (req, res) {
|
||||
let { name, init_pass, init_bal, password2 } = req.body;
|
||||
let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name);
|
||||
contains = JSON.parse(contains.body).value;
|
||||
let errors = [];
|
||||
let successes = [];
|
||||
let contains = await client.contains(name);
|
||||
req.session.errors = [];
|
||||
req.session.successes = [];
|
||||
if (contains == true) {
|
||||
errors.push({ msg: "User already exists" });
|
||||
res.render("adminsettings", {
|
||||
|
|
@ -57,165 +64,111 @@ router.post("/user", checkAdmin, async function (req, res) {
|
|||
});
|
||||
} else {
|
||||
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
|
||||
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
|
||||
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 successes = [];
|
||||
try {
|
||||
post = await got.post(process.env.BANKAPIURL + "BankF/admin/user", {
|
||||
json: {
|
||||
name: name,
|
||||
attempt: req.session.adminp,
|
||||
init_bal: parseInt(init_bal),
|
||||
init_pass: init_pass,
|
||||
},
|
||||
responseType: "json",
|
||||
});
|
||||
post = await client.adminAddUser(
|
||||
name,
|
||||
req.session.adminp,
|
||||
init_pass,
|
||||
parseInt(init_bal)
|
||||
);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
if (post.body.value == true) {
|
||||
if (post) {
|
||||
successes.push({ msg: "Account Creation Successful" });
|
||||
}
|
||||
}
|
||||
res.render("adminsettings", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
marketplace: process.env.MARKETPLACE,
|
||||
random: papy(),
|
||||
});
|
||||
res.redirect("/admin");
|
||||
});
|
||||
|
||||
router.post("/baluser", checkAdmin, async function (req, res) {
|
||||
let { name } = req.body;
|
||||
let balance;
|
||||
let successes = [];
|
||||
let errors = [];
|
||||
req.session.successes = [];
|
||||
req.session.errors = [];
|
||||
try {
|
||||
balance = await got(process.env.BANKAPIURL + "BankF/" + name + "/bal");
|
||||
balance = JSON.parse(balance.body);
|
||||
balance = await client.balance(name);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
if (balance.value == -1 || balance.value == undefined) {
|
||||
errors.push({ msg: "User not found" });
|
||||
balance = parseInt(balance);
|
||||
console.log(balance);
|
||||
if (balance < 0) {
|
||||
req.session.errors.push({ msg: "User not found" });
|
||||
} else {
|
||||
successes.push({
|
||||
req.session.successes.push({
|
||||
msg: "User: " + name + " has " + balance.value + " monies",
|
||||
});
|
||||
}
|
||||
res.render("adminsettings", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
marketplace: process.env.MARKETPLACE,
|
||||
random: papy(),
|
||||
});
|
||||
res.redirect("/admin");
|
||||
});
|
||||
|
||||
router.post("/bal", checkAdmin, async function (req, res) {
|
||||
let { name, amount } = req.body;
|
||||
let patch;
|
||||
let successes = [];
|
||||
req.session.successes = [];
|
||||
req.session.errors = [];
|
||||
try {
|
||||
patch = await got.patch(
|
||||
process.env.BANKAPIURL + "BankF/admin/" + name + "/bal",
|
||||
{
|
||||
json: {
|
||||
name: name,
|
||||
attempt: req.session.adminp,
|
||||
amount: parseInt(amount),
|
||||
},
|
||||
responseType: "json",
|
||||
}
|
||||
);
|
||||
patch = await client.setBalance(name, req.session.adminp, parseInt(amount));
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
if ((await patch.body.value) == true) {
|
||||
successes.push({ msg: "Change Funds Successful" });
|
||||
if (patch) {
|
||||
req.session.successes.push({ msg: "Change Funds Successful" });
|
||||
}
|
||||
res.render("adminsettings", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
marketplace: process.env.MARKETPLACE,
|
||||
random: papy(),
|
||||
});
|
||||
res.redirect("/admin");
|
||||
});
|
||||
router.post("/userdelete", checkAdmin, async function (req, res) {
|
||||
let { name, attempt } = req.body;
|
||||
console.log(name);
|
||||
let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name);
|
||||
contains = JSON.parse(contains.body).value;
|
||||
let contains = await client.contains(name);
|
||||
let deleteUser;
|
||||
let successes = [];
|
||||
let errors = [];
|
||||
if (attempt != req.session.adminp) {
|
||||
errors.push({ msg: "Wrong Admin Password" });
|
||||
req.session.errors.push({ msg: "Wrong Admin Password" });
|
||||
}
|
||||
console.log(contains);
|
||||
if (contains == true) {
|
||||
deleteUser = got.delete(process.env.BANKAPIURL + "BankF/admin/user", {
|
||||
json: {
|
||||
name: name,
|
||||
attempt: attempt,
|
||||
},
|
||||
responseType: "json",
|
||||
});
|
||||
successes.push({ msg: "User Deletion Successful" });
|
||||
deleteUser = client.adminDeleteUser(name, attempt);
|
||||
req.session.successes.push({ msg: "User Deletion Successful" });
|
||||
} else {
|
||||
errors.push({ msg: "User Deletion Failed, User Not Found" });
|
||||
req.session.errors.push({ msg: "User Deletion Failed, User Not Found" });
|
||||
}
|
||||
res.render("adminsettings", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
marketplace: process.env.MARKETPLACE,
|
||||
random: papy(),
|
||||
});
|
||||
res.redirect("/admin");
|
||||
});
|
||||
router.post("/destroyallsessions", checkAdmin, async function (req, res) {
|
||||
let { attempt } = req.body;
|
||||
let adminTest;
|
||||
let errors = [];
|
||||
req.session.errors = [];
|
||||
try {
|
||||
adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", {
|
||||
json: {
|
||||
attempt: attempt,
|
||||
},
|
||||
responseType: "json",
|
||||
});
|
||||
adminTest = await client.adminVerifyPass(attempt);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
console.log(adminTest.body.value);
|
||||
if (adminTest) {
|
||||
req.sessionStore.clear(function (err) {
|
||||
console.log(err);
|
||||
});
|
||||
res.redirect("/");
|
||||
} else {
|
||||
errors.push({ msg: "failed admin password check" });
|
||||
res.render("adminsettings", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
errors: errors,
|
||||
marketplace: process.env.MARKETPLACE,
|
||||
random: papy(),
|
||||
});
|
||||
req.session.errors.push({ msg: "failed admin password check" });
|
||||
res.redirect("/admin");
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -279,12 +232,7 @@ router.post("/mongodb", checkAdmin, async function (req, res) {
|
|||
router.post("/close", checkAdmin, async function (req, res) {
|
||||
let { attempt } = req.body;
|
||||
let close;
|
||||
close = got.post(process.env.BANKAPIURL + "BankF/admin/close", {
|
||||
json: {
|
||||
attempt: attempt,
|
||||
},
|
||||
responseType: "json",
|
||||
});
|
||||
close = client.close();
|
||||
res.redirect("../");
|
||||
});
|
||||
function papy() {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ const flash = require("connect-flash");
|
|||
const expressValidator = require("express-validator");
|
||||
const session = require("express-session");
|
||||
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) {
|
||||
let successes = req.session.successes;
|
||||
|
|
@ -27,7 +29,10 @@ router.get("/", ensureAuthenticated, function (req, res) {
|
|||
router.post("/pass", ensureAuthenticated, async function (req, res) {
|
||||
let { attempt, new_pass, password2 } = req.body;
|
||||
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" });
|
||||
}
|
||||
//check if match
|
||||
|
|
@ -44,31 +49,22 @@ router.post("/pass", ensureAuthenticated, async function (req, res) {
|
|||
res.redirect("/settings");
|
||||
} else {
|
||||
try {
|
||||
patch = await got.patch(process.env.BANKAPIURL + "BankF/changepass", {
|
||||
json: {
|
||||
name: req.session.user,
|
||||
attempt: attempt,
|
||||
new_pass: new_pass,
|
||||
},
|
||||
responseType: "json",
|
||||
});
|
||||
patch = await client.changePassword(req.session.user, attempt, new_pass);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
console.log(patch.body);
|
||||
if (patch.body.value == 0) {
|
||||
console.log(patch);
|
||||
if (patch) {
|
||||
req.session.errors.push({
|
||||
msg: "Password Wrong",
|
||||
});
|
||||
res.redirect("/settings");
|
||||
} else {
|
||||
req.session.regenerate(function (err) {
|
||||
if (patch.body.value == 1) {
|
||||
req.session.successes = [];
|
||||
req.session.successes.push({
|
||||
msg: "Change Password Successful, Please Login Again",
|
||||
});
|
||||
}
|
||||
res.redirect("/login");
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue