mirror of
https://github.com/Expand-sys/ccashfrontend
synced 2025-12-15 14:22:14 +11:00
major patch and update, no visual changes to look
This commit is contained in:
parent
51eb7901f8
commit
e2b73bd19d
10 changed files with 308 additions and 322 deletions
BIN
bun.lockb
Executable file
BIN
bun.lockb
Executable file
Binary file not shown.
316
index.js
316
index.js
|
|
@ -7,58 +7,46 @@ const fastify = require("fastify")({
|
|||
logger: false,
|
||||
});
|
||||
|
||||
const fastifyFlash = require("fastify-flash");
|
||||
const fastifyFlash = require("@fastify/flash");
|
||||
|
||||
const path = require("path");
|
||||
const got = require("got");
|
||||
const url = require("url");
|
||||
|
||||
const fs = require("fs");
|
||||
|
||||
fastify.register(require("fastify-formbody"));
|
||||
fastify.register(require("fastify-static"), {
|
||||
fastify.register(require("@fastify/cookie"));
|
||||
fastify.register(require("@fastify/formbody"));
|
||||
fastify.register(require("@fastify/static"), {
|
||||
root: path.join(__dirname, "public"),
|
||||
prefix: "/", // optional: default '/'
|
||||
});
|
||||
|
||||
fastify.register(require("fastify-secure-session"), {
|
||||
fastify.register(require("@fastify/session"), {
|
||||
// the name of the session cookie, defaults to 'session'
|
||||
cookieName: "session",
|
||||
// adapt this to point to the directory where secret-key is located
|
||||
key: fs.readFileSync(path.join(__dirname, "secret-key")),
|
||||
Cookie: {
|
||||
secret: "iohadwjbnfwadjuobufwhaiojnwfiklndlioaknsiohiuhr2890u4902u94u219j4oip12jiopj",
|
||||
cookie: {
|
||||
path: "/",
|
||||
// options for setCookie, see https://github.com/fastify/fastify-cookie
|
||||
signed: true,
|
||||
secure: "auto",
|
||||
httpOnly: true,
|
||||
overwrite: true,
|
||||
sameSite: "none",
|
||||
},
|
||||
});
|
||||
fastify.register(fastifyFlash);
|
||||
fastify.register(require("point-of-view"), {
|
||||
fastify.register(require("@fastify/view"), {
|
||||
engine: {
|
||||
pug: require("pug"),
|
||||
},
|
||||
defaultContext: {
|
||||
random: papy(),
|
||||
},
|
||||
root: path.join(__dirname, "views"),
|
||||
});
|
||||
|
||||
const api = `${process.env.BANKAPIURL}`;
|
||||
|
||||
function papy() {
|
||||
const rndInt = Math.floor(Math.random() * 1337);
|
||||
let random = false;
|
||||
if (rndInt == 420) {
|
||||
random = true;
|
||||
}
|
||||
return random;
|
||||
}
|
||||
function validate(req, res, next) {
|
||||
if (req.session.get("user")) {
|
||||
if (req.session.get("user") != null) {
|
||||
next();
|
||||
} else {
|
||||
res.redirect("/login");
|
||||
|
|
@ -87,34 +75,30 @@ fastify.post("/setup", async function (req, res) {
|
|||
});
|
||||
|
||||
fastify.get("/", async function (req, res) {
|
||||
let successes = req.session.get("successes");
|
||||
req.session.set("successes", "");
|
||||
let errors = req.session.get("errors");
|
||||
req.session.set("errors", "");
|
||||
if (process.env.SETUP == false || !process.env.SETUP) {
|
||||
res.view("setup");
|
||||
} else {
|
||||
console.log(`${api}/api/properties`);
|
||||
let checkalive = await got(`${api}/api/properties`, {
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
},
|
||||
});
|
||||
if (checkalive) {
|
||||
alive = true;
|
||||
} else {
|
||||
alive = false;
|
||||
}
|
||||
|
||||
res.view("index", {
|
||||
user: req.session.get("user"),
|
||||
admin: req.session.get("admin"),
|
||||
alive: alive,
|
||||
url: process.env.BANKAPIURL,
|
||||
errors: errors,
|
||||
successes: successes,
|
||||
});
|
||||
let successes = req.session.successes;
|
||||
req.session.successes = "";
|
||||
let errors = req.session.errors;
|
||||
req.session.errors = "";
|
||||
console.log(`${api}/api/properties`);
|
||||
let checkalive = await fetch(`${api}/api/properties`, {
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
},
|
||||
});
|
||||
let alive = false
|
||||
if (checkalive.ok) {
|
||||
alive = true;
|
||||
}
|
||||
|
||||
return res.view("index", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
alive: alive,
|
||||
url: process.env.BANKAPIURL,
|
||||
errors: errors,
|
||||
successes: successes,
|
||||
});
|
||||
|
||||
});
|
||||
fastify.get(
|
||||
"/BankF",
|
||||
|
|
@ -122,44 +106,40 @@ fastify.get(
|
|||
preValidation: [validate],
|
||||
},
|
||||
async function (req, res) {
|
||||
let successes = req.session.get("successes");
|
||||
req.session.set("successes", "");
|
||||
let errors = req.session.get("errors");
|
||||
req.session.set("errors", "");
|
||||
let successes = req.session.successes;
|
||||
req.session.successes = "";
|
||||
let errors = req.session.errors;
|
||||
req.session.errors = "";
|
||||
let admin;
|
||||
try {
|
||||
admin = req.session.get("admin");
|
||||
admin = req.session.admin;
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
let balance = 0;
|
||||
const user = req.session.get("user");
|
||||
const password = req.session.get("password");
|
||||
const auth = req.session.get("b64");
|
||||
balance = await got(`${api}/api/v1/user/balance`, {
|
||||
const user = req.session.user;
|
||||
const password = req.session.password;
|
||||
const auth = req.session.b64;
|
||||
balance = await fetch(`${api}/api/v1/user/balance?name=${user}`, {
|
||||
headers: {
|
||||
Authorization: auth,
|
||||
Accept: "application/json",
|
||||
},
|
||||
searchParams: {
|
||||
name: user,
|
||||
Accept: "*/*",
|
||||
},
|
||||
});
|
||||
balance = parseInt(balance.body);
|
||||
console.log(balance);
|
||||
balance = await parseInt(await balance.text());
|
||||
//console.log(balance);
|
||||
console.log("start " + Date.now());
|
||||
|
||||
let log = await got(`${api}/api/v2/user/log`, {
|
||||
let log = await fetch(`${api}/api/v2/user/log`, {
|
||||
headers: {
|
||||
Authorization: auth,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json"
|
||||
|
||||
},
|
||||
});
|
||||
let transactionlog = []
|
||||
let currentbal = balance;
|
||||
log = JSON.parse(log.body);
|
||||
let final = []
|
||||
let final2 = [];
|
||||
log = await log.json()
|
||||
|
||||
/*if(log != null){
|
||||
let graphlog = log.reverse();
|
||||
|
|
@ -195,12 +175,8 @@ fastify.get(
|
|||
|
||||
}*/
|
||||
if(log){
|
||||
log.reverse()
|
||||
|
||||
|
||||
for(i = 0; i < log.length; i++){
|
||||
|
||||
|
||||
|
||||
for(i = 0; i < log.length; i++){
|
||||
if(log[i].amount > 0){
|
||||
let absol = Math.abs(log[i].amount)
|
||||
let date = new Date(log[i].time * 1000)
|
||||
|
|
@ -220,14 +196,14 @@ fastify.get(
|
|||
//let stringgraphdata = JSON.stringify(final2)
|
||||
//console.log(stringgraphdata)
|
||||
//let graphdata = stringgraphdata.slice(1,stringgraphdata.length-1)
|
||||
res.view("bankf", {
|
||||
return res.view("bankf", {
|
||||
transactionlog: transactionlog,
|
||||
//maxgraph: maxgraph,
|
||||
//graphdata: graphdata,
|
||||
user: req.session.get("user"),
|
||||
user: req.session.user,
|
||||
balance: balance,
|
||||
admin: req.session.get("admin"),
|
||||
sucesses: successes,
|
||||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
alive: true,
|
||||
});
|
||||
|
|
@ -240,126 +216,148 @@ fastify.post(
|
|||
preValidation: [validate],
|
||||
},
|
||||
async function (req, res) {
|
||||
let { amount, name, senderpass } = req.body;
|
||||
req.session.set("errors", "");
|
||||
req.session.set("successes", "");
|
||||
let { amount, name } = req.body;
|
||||
req.session.errors = "";
|
||||
req.session.successes = "";
|
||||
let result;
|
||||
let auth = req.session.get("b64");
|
||||
let auth = req.session.b64;
|
||||
|
||||
try {
|
||||
result = await got.post(`${api}/api/v1/user/transfer`, {
|
||||
result = await fetch(`${api}/api/v1/user/transfer`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
Authorization: auth,
|
||||
Accept: "application/json",
|
||||
Authorization: auth,
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
json: {
|
||||
name: name,
|
||||
amount: parseInt(amount),
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"name": name,
|
||||
"amount": parseInt(amount),
|
||||
}),
|
||||
});
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e}`);
|
||||
console.log(e)
|
||||
req.session.errors = `${e}`;
|
||||
}
|
||||
if (result) {
|
||||
req.session.set("successes", "Transfer successful");
|
||||
console.log(result)
|
||||
console.log(await result.text())
|
||||
if (result.ok) {
|
||||
req.session.successes = "Transfer successful";
|
||||
//post details
|
||||
}
|
||||
res.redirect("/BankF");
|
||||
return res.redirect("/BankF");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
fastify.post("/register", async function (req, res) {
|
||||
var { name, password, password2 } = req.body;
|
||||
req.session.set("successes", "");
|
||||
req.session.set("errors", "");
|
||||
req.session.successes = "";
|
||||
req.session.errors = "";
|
||||
if (!name || !password || !password2) {
|
||||
req.session.set("errors", "please fill in all fields");
|
||||
res.redirect("/register");
|
||||
req.session.errors = "please fill in all fields";
|
||||
return res.redirect("/register");
|
||||
} else if (password != password2) {
|
||||
req.session.set("errors", "Passwords don't match");
|
||||
res.redirect("/register");
|
||||
req.session.errors = "Passwords don't match";
|
||||
return res.redirect("/register");
|
||||
} else if (password.length < 6) {
|
||||
req.session.set("errors", "Password must be at least 6 characters");
|
||||
res.redirect("/register");
|
||||
req.session.errors = "Password must be at least 6 characters";
|
||||
return res.redirect("/register");
|
||||
} else {
|
||||
//let checkuser = await client.addUser(name, password);
|
||||
|
||||
try {
|
||||
let checkuser = await got.post(`${api}/api/v1/user/register`, {
|
||||
let checkuser = await fetch(`${api}/api/v1/user/register`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
json: {
|
||||
name: `${name}`,
|
||||
pass: `${password}`,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"name": `${name}`,
|
||||
"pass": `${password}`,
|
||||
}),
|
||||
});
|
||||
if (checkuser) {
|
||||
req.session.set("successes", "Account Created! please Log in");
|
||||
if (checkuser.ok) {
|
||||
req.session.successes = "Account Created! please Log in";
|
||||
}
|
||||
console.log(checkuser)
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
req.session.errors = `${await e.text()}`;
|
||||
console.log(e);
|
||||
return res.redirect("/register")
|
||||
}
|
||||
|
||||
res.redirect("/register");
|
||||
return res.redirect("/login");
|
||||
}
|
||||
});
|
||||
|
||||
fastify.post("/login", async function (req, res) {
|
||||
if (req.session.get("user")) {
|
||||
res.redirect("/");
|
||||
return res.redirect("/");
|
||||
}
|
||||
const { name, password, score, success } = req.body;
|
||||
console.log(success, score)
|
||||
if( score <= 0.2 && success == true){
|
||||
const { name, password } = req.body;
|
||||
console.log(name,password)
|
||||
/*if( score <= 0.2 && success == true){
|
||||
req.session.set("errors", "failed captcha")
|
||||
res.redirect("/login")
|
||||
}
|
||||
return res.redirect("/login")
|
||||
}*/
|
||||
|
||||
let auth = Buffer.from(`${name}:${password}`).toString('base64');
|
||||
auth = `Basic ${auth}`;
|
||||
console.log(auth)
|
||||
let adminTest;
|
||||
try {
|
||||
adminTest = await got.post(`${api}/api/v1/admin/verify_account`, {
|
||||
adminTest = await fetch(`${api}/api/v1/admin/verify_account`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
Authorization: auth,
|
||||
Accept: "application/json",
|
||||
},
|
||||
});
|
||||
|
||||
adminTest = JSON.parse(adminTest.statusCode);
|
||||
adminTest = JSON.parse(adminTest.ok);
|
||||
} catch (e) {
|
||||
console.log(e.response.body);
|
||||
console.log(`${e.text()}`);
|
||||
console.log("yeet")
|
||||
}
|
||||
console.log(adminTest);
|
||||
if (adminTest == 204) {
|
||||
req.session.set("b64", auth);
|
||||
req.session.set("admin", adminTest);
|
||||
req.session.set("user", name);
|
||||
req.session.set("password", password);
|
||||
if (adminTest) {
|
||||
req.session.b64 = auth;
|
||||
req.session.admin = adminTest;
|
||||
req.session.user = name;
|
||||
req.session.password = password;
|
||||
return res.redirect("/BankF");
|
||||
|
||||
} else {
|
||||
let verified;
|
||||
try {
|
||||
verified = await got.post(`${api}/api/v1/user/verify_password`, {
|
||||
verified = await fetch(`${api}/api/v1/user/verify_password`, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
Authorization: auth,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
});
|
||||
verified = JSON.parse(verified.statusCode);
|
||||
console.log(verified)
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
console.log(e);
|
||||
}
|
||||
if (verified) {
|
||||
req.session.set("b64", auth);
|
||||
req.session.set("user", name);
|
||||
req.session.set("password", password);
|
||||
if (verified.ok == true) {
|
||||
req.session.b64 = auth;
|
||||
req.session.user = name;
|
||||
req.session.password = password;
|
||||
return res.redirect("/BankF");
|
||||
|
||||
} else{
|
||||
req.session.errors = await verified.text()
|
||||
return res.redirect("/login");
|
||||
}
|
||||
|
||||
}
|
||||
res.redirect("/BankF");
|
||||
});
|
||||
|
||||
fastify.register(require("./routes/admin"), { prefix: "/admin" });
|
||||
|
|
@ -367,21 +365,20 @@ fastify.register(require("./routes/admin"), { prefix: "/admin" });
|
|||
fastify.register(require("./routes/settings"), { prefix: "/settings" });
|
||||
|
||||
fastify.get("/logout", async function (req, res) {
|
||||
let checkalive = await got(`${api}/api/properties`, {
|
||||
let checkalive = await fetch(`${api}/api/properties`, {
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
},
|
||||
});
|
||||
if (checkalive) {
|
||||
if (checkalive.ok) {
|
||||
alive = true;
|
||||
} else {
|
||||
alive = false;
|
||||
}
|
||||
let successes = req.session.get("successes");
|
||||
let errors = req.session.get("errors");
|
||||
req.session.delete();
|
||||
res.view("login", {
|
||||
random: papy(),
|
||||
let successes = req.session.successes;
|
||||
let errors = req.session.errors;
|
||||
req.session.destroy();
|
||||
return res.view("login", {
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
alive: alive,
|
||||
|
|
@ -389,52 +386,51 @@ fastify.get("/logout", async function (req, res) {
|
|||
});
|
||||
|
||||
fastify.get("/login", async function (req, res) {
|
||||
let successes = req.session.get("successes");
|
||||
req.session.set("successes", "");
|
||||
let errors = req.session.get("errors");
|
||||
req.session.set("errors", "");
|
||||
let successes = req.session.successes;
|
||||
req.session.successes = "";
|
||||
let errors = req.session.errors;
|
||||
console.log(req.session.errors)
|
||||
req.session.serrors = "";
|
||||
//let checkalive = await client.ping();
|
||||
let checkalive = await got(`${api}/api/properties`, {
|
||||
let checkalive = await fetch(`${api}/api/properties`, {
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
},
|
||||
});
|
||||
if (checkalive) {
|
||||
if (checkalive.ok) {
|
||||
alive = true;
|
||||
} else {
|
||||
alive = false;
|
||||
}
|
||||
res.view("login", {
|
||||
return res.view("login", {
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
user: req.session.get("user"),
|
||||
random: papy(),
|
||||
user: req.session.user,
|
||||
alive: alive,
|
||||
});
|
||||
});
|
||||
|
||||
fastify.get("/register", async function (req, res) {
|
||||
let successes = req.session.get("successes");
|
||||
req.session.set("successes", "");
|
||||
let errors = req.session.get("errors");
|
||||
req.session.set("errors", "");
|
||||
let successes = req.session.successes;
|
||||
req.session.successes = "";
|
||||
let errors = req.session.errors;
|
||||
req.session.errors = "";
|
||||
//let checkalive = await client.ping();
|
||||
let checkalive = await got(`${api}/api/properties`, {
|
||||
let checkalive = await fetch(`${api}/api/properties`, {
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
},
|
||||
});
|
||||
if (checkalive) {
|
||||
if (checkalive.ok) {
|
||||
alive = true;
|
||||
} else {
|
||||
alive = false;
|
||||
}
|
||||
res.view("register", {
|
||||
return res.view("register", {
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
user: req.session.get("user"),
|
||||
admin: req.session.get("admin"),
|
||||
random: papy(),
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
alive: alive,
|
||||
});
|
||||
});
|
||||
|
|
@ -442,7 +438,7 @@ process.on("SIGINT", function () {
|
|||
process.exit();
|
||||
});
|
||||
|
||||
fastify.listen(process.env.PORT || 3000, "0.0.0.0", function (err, address) {
|
||||
fastify.listen({ port: process.env.PORT || 3000, host: '0.0.0.0' }, function (err, address) {
|
||||
if (err) {
|
||||
fastify.log.error(err);
|
||||
process.exit(1);
|
||||
|
|
|
|||
31
package.json
31
package.json
|
|
@ -1,23 +1,21 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"@mgcrea/fastify-session": "^0.14.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"@fastify/cookie": "^9.1.0",
|
||||
"@fastify/flash": "^5.1.0",
|
||||
"@fastify/formbody": "^7.4.0",
|
||||
"@fastify/secure-session": "^7.1.0",
|
||||
"@fastify/session": "^10.5.0",
|
||||
"@fastify/static": "^6.11.2",
|
||||
"@fastify/view": "^8.2.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"express-validator": "^6.14.2",
|
||||
"fastify": "^3.18.0",
|
||||
"fastify-cookie": "^5.3.1",
|
||||
"fastify-flash": "^2.0.2",
|
||||
"fastify-formbody": "^5.0.0",
|
||||
"fastify-plugin": "^3.0.0",
|
||||
"fastify-secure-session": "^2.3.1",
|
||||
"fastify-static": "^4.2.2",
|
||||
"fastify": "^4.24.2",
|
||||
"fastify-tls-keygen": "^1.1.0",
|
||||
"got": "^11.8.2",
|
||||
"https": "^1.0.0",
|
||||
"path": "^0.12.7",
|
||||
"pino-pretty": "^5.0.2",
|
||||
"point-of-view": "^4.15.0",
|
||||
"pino-pretty": "^10.2.3",
|
||||
"pug": "^3.0.2",
|
||||
"url": "^0.11.0"
|
||||
"url": "^0.11.3"
|
||||
},
|
||||
"name": "ccashfrontend",
|
||||
"description": "",
|
||||
|
|
@ -34,7 +32,10 @@
|
|||
},
|
||||
"homepage": "https://github.com/Expand-sys/ccashfrontend#readme",
|
||||
"engines": {
|
||||
"node": "16.x"
|
||||
"node": "18.x"
|
||||
},
|
||||
"build": {}
|
||||
"build": {},
|
||||
"scripts": {
|
||||
"start": "node index.js"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
183
routes/admin.js
183
routes/admin.js
|
|
@ -1,12 +1,12 @@
|
|||
const root = process.env.PWD;
|
||||
const path = require("path");
|
||||
const pug = require("pug");
|
||||
const got = require("got");
|
||||
|
||||
const fs = require("fs");
|
||||
|
||||
const api = process.env.BANKAPIURL;
|
||||
console.log("Sen was here");
|
||||
|
||||
module.exports = function (fastify, opts, done) {
|
||||
fastify.get(
|
||||
"/",
|
||||
|
|
@ -14,7 +14,7 @@ module.exports = function (fastify, opts, done) {
|
|||
preValidation: [validateAdmin],
|
||||
},
|
||||
async function (req, res) {
|
||||
let checkalive = await got(`${api}/api/properties`, {
|
||||
let checkalive = await fetch(`${api}/api/properties`, {
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
},
|
||||
|
|
@ -24,16 +24,15 @@ module.exports = function (fastify, opts, done) {
|
|||
} else {
|
||||
alive = false;
|
||||
}
|
||||
let successes = req.session.get("successes");
|
||||
req.session.set("successes", "");
|
||||
let errors = req.session.get("errors");
|
||||
req.session.set("errors", "");
|
||||
res.view("adminsettings", {
|
||||
user: req.session.get("user"),
|
||||
admin: req.session.get("admin"),
|
||||
let successes = req.session.successes;
|
||||
req.session.successes = "";
|
||||
let errors = req.session.errors;
|
||||
req.session.errors = "";
|
||||
return res.view("adminsettings", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
errors: errors,
|
||||
successes: successes,
|
||||
random: papy(),
|
||||
alive: alive,
|
||||
});
|
||||
}
|
||||
|
|
@ -47,30 +46,32 @@ module.exports = function (fastify, opts, done) {
|
|||
async function (req, res) {
|
||||
let { name, init_pass, init_bal, password2 } = req.body;
|
||||
if (!name || !init_pass || !init_bal || !password2) {
|
||||
req.session.set("errors", "please fill in all fields");
|
||||
req.session.errors = "please fill in all fields";
|
||||
} else if (init_pass !== password2) {
|
||||
req.session.set("errors", "Passwords don't match");
|
||||
req.session.errors = "Passwords don't match";
|
||||
}
|
||||
let post;
|
||||
try {
|
||||
post = await got.post(`${api}/api/v1/admin/user/register`, {
|
||||
post = await fetch(`${api}/api/v1/admin/user/register`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: req.session.get("b64"),
|
||||
Authorization: req.session.b64,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
json: {
|
||||
name: name,
|
||||
amount: parseInt(init_bal),
|
||||
pass: init_pass,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"name": name,
|
||||
"amount": parseInt(init_bal),
|
||||
"pass": init_pass,
|
||||
}),
|
||||
});
|
||||
post = post.statusCode;
|
||||
post = post.ok;
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
req.session.errors = `${e.text()}`;
|
||||
console.log(e.text());
|
||||
}
|
||||
if (post) {
|
||||
req.session.set("successes", `User ${name} registered.`);
|
||||
req.session.successes = `User ${name} registered.`;
|
||||
}
|
||||
res.redirect("/admin");
|
||||
}
|
||||
|
|
@ -84,31 +85,29 @@ module.exports = function (fastify, opts, done) {
|
|||
async function (req, res) {
|
||||
let { name } = req.body;
|
||||
let balance;
|
||||
req.session.set("successes", "");
|
||||
req.session.set("errors", "");
|
||||
req.session.successes = "";
|
||||
req.session.errors = "";
|
||||
let responsecode;
|
||||
try {
|
||||
balance = await got(`${api}/api/v1/user/balance`, {
|
||||
balance = await fetch(`${api}/api/v1/user/balance`, {
|
||||
headers: {
|
||||
Authorization: req.session.get("b64"),
|
||||
Authorization: req.session.b64,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
searchParams: {
|
||||
name: name,
|
||||
"name": name,
|
||||
},
|
||||
});
|
||||
balance = parseInt(balance.body);
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
req.session.errors = `${e}`;
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
console.log(balance);
|
||||
if (balance || balance == 0) {
|
||||
req.session.set(
|
||||
"successes",
|
||||
"User: " + name + " has " + balance + " diarrhea dollars"
|
||||
);
|
||||
req.session.successes = "User: " + name + " has " + balance + " CCash";
|
||||
}
|
||||
res.redirect("/admin");
|
||||
}
|
||||
|
|
@ -122,28 +121,32 @@ module.exports = function (fastify, opts, done) {
|
|||
async function (req, res) {
|
||||
let { name, amount } = req.body;
|
||||
let patch;
|
||||
req.session.successes = [];
|
||||
req.session.errors = [];
|
||||
req.session.successes = ""
|
||||
req.session.errors = ""
|
||||
console.log(name, amount)
|
||||
try {
|
||||
patch = await got.patch(`${api}/api/v1/admin/set_balance`, {
|
||||
patch = await fetch(`${api}/api/v1/admin/set_balance`, {
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
Authorization: req.session.get("b64"),
|
||||
Accept: "application/json",
|
||||
},
|
||||
json: {
|
||||
name: name,
|
||||
amount: parseInt(amount),
|
||||
Authorization: `${req.session.b64}`,
|
||||
Accept: "*/*",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"name": `${name}`,
|
||||
"amount": parseInt(amount),
|
||||
}),
|
||||
});
|
||||
patch = patch.statusCode;
|
||||
console.log(patch, patch.blob())
|
||||
patch = patch.ok;
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
req.session.errors = e;
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
console.log(patch);
|
||||
if (patch) {
|
||||
req.session.set("successes", "Change Funds Successful");
|
||||
req.session.successes = "Change Funds Successful";
|
||||
}
|
||||
res.redirect("/admin");
|
||||
}
|
||||
|
|
@ -162,23 +165,25 @@ module.exports = function (fastify, opts, done) {
|
|||
amount = parseInt(amount, 10)
|
||||
console.log(amount)
|
||||
try {
|
||||
patch = await got.post(`${api}/api/v1/admin/impact_balance`, {
|
||||
patch = await fetch(`${api}/api/v1/admin/impact_balance`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: req.session.get("b64"),
|
||||
Authorization: req.session.b64,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
json: {
|
||||
name: name,
|
||||
amount: amount,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"name": name,
|
||||
"amount": amount,
|
||||
}),
|
||||
});
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
req.session.errors = `${e}`;
|
||||
console.log(e);
|
||||
}
|
||||
if (patch) {
|
||||
req.session.set("errors", "")
|
||||
req.session.set("successes", "Change Funds Successful");
|
||||
req.session.errors = ""
|
||||
req.session.successes = "Change Funds Successful";
|
||||
}
|
||||
res.redirect("/admin");
|
||||
}
|
||||
|
|
@ -195,25 +200,27 @@ module.exports = function (fastify, opts, done) {
|
|||
|
||||
if (new_pass == password2) {
|
||||
try {
|
||||
patch = await got.patch(`${api}/api/v1/admin/user/change_password`, {
|
||||
patch = await fetch(`${api}/api/v1/admin/user/change_password`, {
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
Authorization: req.session.get("b64"),
|
||||
Authorization: req.session.b64,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
json: {
|
||||
name: name,
|
||||
pass: new_pass,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"name": name,
|
||||
"pass": new_pass,
|
||||
}),
|
||||
});
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
req.session.errors = `${e}`;
|
||||
console.log(e);
|
||||
}
|
||||
if (patch) {
|
||||
req.session.set("successes", "Change Password Successful");
|
||||
req.session.successes = "Change Password Successful";
|
||||
}
|
||||
} else {
|
||||
req.session.set("errors", `Passwords dont match`);
|
||||
req.session.errors = `Passwords dont match`;
|
||||
}
|
||||
|
||||
res.redirect("/admin");
|
||||
|
|
@ -228,25 +235,27 @@ module.exports = function (fastify, opts, done) {
|
|||
async function (req, res) {
|
||||
let { name, attempt } = req.body;
|
||||
|
||||
if (attempt != req.session.get("adminp"))
|
||||
if (attempt != req.session.adminp)
|
||||
try {
|
||||
let deleteUser = await got.delete(`${api}/api/v1/admin/user/delete`, {
|
||||
let deleteUser = await fetch(`${api}/api/v1/admin/user/delete`, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
Authorization: req.session.get("b64"),
|
||||
Authorization: req.session.b64,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
json: {
|
||||
name: name,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"name": name,
|
||||
}),
|
||||
});
|
||||
deleteUser = deleteUser.statusCode;
|
||||
console.log(deleteUser);
|
||||
if (deleteUser) {
|
||||
req.session.set("successes", "User Deletion Successful");
|
||||
req.session.successes = "User Deletion Successful";
|
||||
}
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
req.session.errors = `${e}`;
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
res.redirect("/admin");
|
||||
|
|
@ -292,43 +301,37 @@ module.exports = function (fastify, opts, done) {
|
|||
},
|
||||
async function (req, res) {
|
||||
let { attempt } = req.body;
|
||||
let name = req.session.get("user");
|
||||
let name = req.session.user;
|
||||
let close;
|
||||
//close = client.close();
|
||||
let auth = btoa(`${name}:${attempt}`);
|
||||
auth = `Basic ${auth}`;
|
||||
try {
|
||||
close = got.post(`${api}/api/v1/admin/shutdown`, {
|
||||
close = fetch(`${api}/api/v1/admin/shutdown`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: auth,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
req.session.errors = `${e}`;
|
||||
console.log(e);
|
||||
}
|
||||
if (close) {
|
||||
req.session.set("successes", "Closed instance");
|
||||
req.session.successes = "Closed instance";
|
||||
}
|
||||
res.redirect("../");
|
||||
}
|
||||
);
|
||||
|
||||
function validateAdmin(req, res, next) {
|
||||
if (!req.session.get("admin")) {
|
||||
if (!req.session.admin) {
|
||||
res.redirect("/login");
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
}
|
||||
function papy() {
|
||||
const rndInt = Math.floor(Math.random() * 1337);
|
||||
let random = false;
|
||||
if (rndInt == 420) {
|
||||
random = true;
|
||||
}
|
||||
return random;
|
||||
}
|
||||
done();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ const root = process.env.PWD;
|
|||
const path = require("path");
|
||||
var pug = require("pug");
|
||||
|
||||
const got = require("got");
|
||||
function validate(req, res, next) {
|
||||
if (!req.session.get("user")) {
|
||||
res.redirect("/login");
|
||||
|
|
@ -19,7 +18,7 @@ module.exports = function (fastify, opts, done) {
|
|||
preValidation: [validate],
|
||||
},
|
||||
async function (req, res) {
|
||||
let checkalive = await got(`${api}/api/properties`, {
|
||||
let checkalive = await fetch(`${api}/api/properties`, {
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
},
|
||||
|
|
@ -29,15 +28,15 @@ module.exports = function (fastify, opts, done) {
|
|||
} else {
|
||||
alive = false;
|
||||
}
|
||||
let successes = req.session.get("successes");
|
||||
req.session.set("successes", "");
|
||||
let errors = req.session.get("errors");
|
||||
req.session.set("errors", "");
|
||||
res.view("settings", {
|
||||
let successes = req.session.successes;
|
||||
req.session.successes = "";
|
||||
let errors = req.session.errors;
|
||||
req.session.errors = "";
|
||||
return res.view("settings", {
|
||||
errors: errors,
|
||||
successes: successes,
|
||||
user: req.session.get("user"),
|
||||
admin: req.session.get("admin"),
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
alive: true,
|
||||
});
|
||||
}
|
||||
|
|
@ -57,45 +56,43 @@ module.exports = function (fastify, opts, done) {
|
|||
if (attempt == undefined) {
|
||||
attempt = "";
|
||||
} else if (!new_pass || !password2) {
|
||||
req.session.set("errors", "please fill in all fields");
|
||||
req.session.errors = "please fill in all fields";
|
||||
res.redirect("/settings");
|
||||
} else if (new_pass != password2) {
|
||||
req.session.set("errors", "Passwords don't match");
|
||||
req.session.errors = "Passwords don't match";
|
||||
res.redirect("/settings");
|
||||
} else if (new_pass.length < 6) {
|
||||
req.session.set("errors", "Password must be at least 6 characters");
|
||||
req.session.errors = "Password must be at least 6 characters";
|
||||
res.redirect("/settings");
|
||||
} else {
|
||||
try {
|
||||
let name = req.session.get("user");
|
||||
let name = req.session.user;
|
||||
let auth = btoa(`${name}:${attempt}`);
|
||||
auth = `Basic ${auth}`;
|
||||
patch = await got.patch(`${api}/api/v1/user/change_password`, {
|
||||
patch = await fetch(`${api}/api/v1/user/change_password`, {
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
Authorization: auth,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json"
|
||||
|
||||
},
|
||||
json: {
|
||||
pass: new_pass,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
"pass": new_pass,
|
||||
}),
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
//req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
console.log(patch);
|
||||
if (patch == -2) {
|
||||
req.session.set("errors", "Password Wrong");
|
||||
res.redirect("/settings");
|
||||
req.session.errors = "Password Wrong";
|
||||
return res.redirect("/settings");
|
||||
} else {
|
||||
req.session.delete();
|
||||
req.session.set(
|
||||
"successes",
|
||||
"Change Password Successful, Please Login Again"
|
||||
);
|
||||
res.redirect("/login");
|
||||
req.session.destroy();
|
||||
//req.session.successes = "Change Password Successful, Please Login Again";
|
||||
return res.redirect("/login");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -111,37 +108,35 @@ module.exports = function (fastify, opts, done) {
|
|||
let { password, password2 } = req.body;
|
||||
let del;
|
||||
if (!password || !password2) {
|
||||
req.session.set("errors", "please fill in all fields");
|
||||
req.session.errors = "please fill in all fields";
|
||||
res.redirect("/settings");
|
||||
} else if (
|
||||
password != password2 &&
|
||||
password != req.session.get("password")
|
||||
password != req.session.password
|
||||
) {
|
||||
req.session.set("errors", "Passwords don't match");
|
||||
req.session.errors = "Passwords don't match";
|
||||
res.redirect("/settings");
|
||||
} else {
|
||||
let name = req.session.get("user");
|
||||
let name = req.session.user;
|
||||
let auth = btoa(`${name}:${password}`);
|
||||
auth = `Basic ${auth}`;
|
||||
try {
|
||||
del = await got.delete(`${api}/api/v1/user/delete`, {
|
||||
del = await fetch(`${api}/api/v1/user/delete`, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
Authorization: auth,
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
req.session.set("errors", `${e.response.body}`);
|
||||
console.log(e.response.body);
|
||||
//req.session.set("errors", `${e}`);
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
console.log(del);
|
||||
if (del) {
|
||||
req.session.delete();
|
||||
req.session.set(
|
||||
"successes",
|
||||
"Account Deleted, pls dont come back to complain"
|
||||
);
|
||||
req.session.destroy();
|
||||
}
|
||||
res.redirect("/");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Öƒ”Qþ;¶àLÛ±iÚÇôâgoÙþ¦Y;vØ)ßû2”
|
||||
,²·<>Έ²,Σχ±<CF87>¨EV<0F>΅Σ<CE85>lάcSή<Αν’‚
|
||||
|
|
@ -4,7 +4,7 @@ extends layout
|
|||
block content
|
||||
.container
|
||||
h1 Settings, logged in as: #{user}
|
||||
if admin == 204
|
||||
if admin
|
||||
br
|
||||
.card.shadow-lg
|
||||
center
|
||||
|
|
|
|||
|
|
@ -24,11 +24,6 @@ block content
|
|||
input.form-control-lg.shadow(name='name', type='text')
|
||||
br
|
||||
br
|
||||
label Your Password:
|
||||
br
|
||||
input.form-control-lg.shadow(name='senderpass', type='password')
|
||||
br
|
||||
br
|
||||
input.btn.btn-primary(type='submit', value='Submit')
|
||||
.col-8
|
||||
.card
|
||||
|
|
|
|||
|
|
@ -6,11 +6,7 @@ html
|
|||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
|
||||
link(rel="preconnect" href="https://fonts.gstatic.com")
|
||||
link(href="https://fonts.googleapis.com/css2?family=Lato&family=Montserrat&display=swap" rel="stylesheet")
|
||||
|
||||
if random
|
||||
link(rel='stylesheet' href='/css/papy.css')
|
||||
if !random
|
||||
link(rel='stylesheet' href='/css/style.css')
|
||||
link(rel='stylesheet' href='/css/style.css')
|
||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||
body
|
||||
nav.navbar.navbar-expand-lg.navbar-dark.navbarrr.shadow-lg
|
||||
|
|
@ -44,13 +40,13 @@ html
|
|||
a.nav-link(href='/BankF').text-white Bank
|
||||
li.nav-item
|
||||
a.nav-link(href='/settings').text-white Settings
|
||||
if admin == 204
|
||||
if admin
|
||||
li.nav-item
|
||||
a.nav-link(href='/admin').text-white Admin
|
||||
.container
|
||||
.container(style="min-height: 3vh")
|
||||
if errors
|
||||
div(class="alert alert-danger") #{errors}
|
||||
div(class="alert alert-danger") #{errors}
|
||||
if successes
|
||||
div(class="alert alert-success") #{successes}
|
||||
br
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ block content
|
|||
h1.text-black Login
|
||||
hr
|
||||
p
|
||||
form(method='POST', action='/login')
|
||||
form(id="login" method='POST', action='/login')
|
||||
#form-group
|
||||
label Username:
|
||||
input.form-control(name='name', type='text')
|
||||
|
|
@ -20,6 +20,6 @@ block content
|
|||
br
|
||||
|
||||
|
||||
button.btn.btn-primary(data-action='submit') Submit
|
||||
button.btn.btn-primary(type="submit" form="login" action='submit') Submit
|
||||
.col-sm
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue