major patch and update, no visual changes to look

This commit is contained in:
Expand 2023-11-29 23:23:43 +11:00
parent 51eb7901f8
commit e2b73bd19d
10 changed files with 308 additions and 322 deletions

BIN
bun.lockb Executable file

Binary file not shown.

316
index.js
View file

@ -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);

View file

@ -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"
}
}

View file

@ -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();
};

View file

@ -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("/");
}

View file

@ -1 +1 @@
Öƒ”Qþ;¶àLÛ±iÚÇôâgoÙþ¦Y;vØ)ßû2”
,² ·<>Έ²,Σχ±<CF87>¨EV<0F>΅Σ<CE85>lάcSή<Αν

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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