mirror of
https://github.com/Expand-sys/ccashfrontend
synced 2025-12-16 23:02:13 +11:00
changed navbar a little
This commit is contained in:
parent
796df3809b
commit
5245d6a735
7 changed files with 615 additions and 740 deletions
53
index.js
53
index.js
|
|
@ -3,20 +3,7 @@ require("pino-pretty");
|
||||||
const dotenv = require("dotenv");
|
const dotenv = require("dotenv");
|
||||||
|
|
||||||
dotenv.config({ path: ".env" });
|
dotenv.config({ path: ".env" });
|
||||||
if (process.env.SECURE) {
|
const fastify = require("fastify")();
|
||||||
const fastify = require("fastify")({
|
|
||||||
http2: true,
|
|
||||||
https: {
|
|
||||||
allowHTTP1: true, // fallback support for HTTP1
|
|
||||||
key: fs.readFileSync(path.join(root, "..", "config", "key.key")),
|
|
||||||
cert: fs.readFileSync(path.join(root, "..", "config", "cert.cert")),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
const fastify = require("fastify")({
|
|
||||||
//logger: { prettyPrint: true },
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const fastifyFlash = require("fastify-flash");
|
const fastifyFlash = require("fastify-flash");
|
||||||
|
|
||||||
|
|
@ -99,19 +86,11 @@ fastify.get("/", async function (req, res) {
|
||||||
res.view("setup");
|
res.view("setup");
|
||||||
} else {
|
} else {
|
||||||
const client = new CCashClient(process.env.BANKAPIURL);
|
const client = new CCashClient(process.env.BANKAPIURL);
|
||||||
let checkalive;
|
let checkalive = await client.ping();
|
||||||
try {
|
if (checkalive) {
|
||||||
checkalive = await client.ping();
|
alive = true;
|
||||||
} catch (err) {
|
} else {
|
||||||
console.log(err);
|
alive = false;
|
||||||
}
|
|
||||||
let alive = false;
|
|
||||||
try {
|
|
||||||
if (checkalive) {
|
|
||||||
alive = true;
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
res.view("index", {
|
res.view("index", {
|
||||||
|
|
@ -222,6 +201,7 @@ fastify.get(
|
||||||
admin: req.session.get("admin"),
|
admin: req.session.get("admin"),
|
||||||
sucesses: successes,
|
sucesses: successes,
|
||||||
errors: errors,
|
errors: errors,
|
||||||
|
alive: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -287,6 +267,7 @@ fastify.post("/register", async function (req, res) {
|
||||||
|
|
||||||
fastify.post("/login", async function (req, res) {
|
fastify.post("/login", async function (req, res) {
|
||||||
const client = new CCashClient(process.env.BANKAPIURL);
|
const client = new CCashClient(process.env.BANKAPIURL);
|
||||||
|
|
||||||
if (req.session.get("user")) {
|
if (req.session.get("user")) {
|
||||||
res.redirect("/");
|
res.redirect("/");
|
||||||
}
|
}
|
||||||
|
|
@ -334,30 +315,44 @@ fastify.get("/logout", function (req, res) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get("/login", function (req, res) {
|
fastify.get("/login", async function (req, res) {
|
||||||
let successes = req.session.get("successes");
|
let successes = req.session.get("successes");
|
||||||
req.session.set("successes", "");
|
req.session.set("successes", "");
|
||||||
let errors = req.session.get("errors");
|
let errors = req.session.get("errors");
|
||||||
req.session.set("errors", "");
|
req.session.set("errors", "");
|
||||||
|
let checkalive = await client.ping();
|
||||||
|
if (checkalive) {
|
||||||
|
alive = true;
|
||||||
|
} else {
|
||||||
|
alive = false;
|
||||||
|
}
|
||||||
res.view("login", {
|
res.view("login", {
|
||||||
successes: successes,
|
successes: successes,
|
||||||
errors: errors,
|
errors: errors,
|
||||||
user: req.session.get("user"),
|
user: req.session.get("user"),
|
||||||
random: papy(),
|
random: papy(),
|
||||||
|
alive: alive,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
fastify.get("/register", function (req, res) {
|
fastify.get("/register", async function (req, res) {
|
||||||
let successes = req.session.get("successes");
|
let successes = req.session.get("successes");
|
||||||
req.session.set("successes", "");
|
req.session.set("successes", "");
|
||||||
let errors = req.session.get("errors");
|
let errors = req.session.get("errors");
|
||||||
req.session.set("errors", "");
|
req.session.set("errors", "");
|
||||||
|
let checkalive = await client.ping();
|
||||||
|
if (checkalive) {
|
||||||
|
alive = true;
|
||||||
|
} else {
|
||||||
|
alive = false;
|
||||||
|
}
|
||||||
res.view("register", {
|
res.view("register", {
|
||||||
successes: successes,
|
successes: successes,
|
||||||
errors: errors,
|
errors: errors,
|
||||||
user: req.session.get("user"),
|
user: req.session.get("user"),
|
||||||
admin: req.session.get("admin"),
|
admin: req.session.get("admin"),
|
||||||
random: papy(),
|
random: papy(),
|
||||||
|
alive: alive,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
process.on("SIGINT", function () {
|
process.on("SIGINT", function () {
|
||||||
|
|
|
||||||
799
package-lock.json
generated
799
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,82 +1,91 @@
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
}
|
}
|
||||||
body{
|
body {
|
||||||
background: rgb(182,151,255);
|
background: rgb(182, 151, 255);
|
||||||
background: linear-gradient(180deg, rgba(182,151,255,1) 0%, rgba(113,63,230,1) 100%);
|
background: linear-gradient(
|
||||||
height:100vh;
|
180deg,
|
||||||
|
rgba(182, 151, 255, 1) 0%,
|
||||||
|
rgba(113, 63, 230, 1) 100%
|
||||||
|
);
|
||||||
|
height: 100vh;
|
||||||
background-attachment: fixed;
|
background-attachment: fixed;
|
||||||
}
|
}
|
||||||
.navbarrr{
|
.navbarrr {
|
||||||
background: rgb(38,9,108);
|
background: rgb(38, 9, 108);
|
||||||
background: linear-gradient(180deg, rgba(38,9,108,1) 0%, rgba(14,3,40,1) 100%);;
|
background: linear-gradient(
|
||||||
|
180deg,
|
||||||
|
rgba(38, 9, 108, 1) 0%,
|
||||||
|
rgba(14, 3, 40, 1) 100%
|
||||||
|
);
|
||||||
}
|
}
|
||||||
.blue{
|
.blue {
|
||||||
background: #46cff2;
|
background: #46cff2;
|
||||||
}
|
}
|
||||||
.container-large{
|
.container-large {
|
||||||
padding-left: 10%;
|
padding-left: 10%;
|
||||||
padding-right: 10%;
|
padding-right: 10%;
|
||||||
}
|
}
|
||||||
.col{
|
.col {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
padding-left: 0px;
|
padding-left: 0px;
|
||||||
padding-right: 0px;
|
padding-right: 0px;
|
||||||
}
|
}
|
||||||
.card{
|
.card {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
.row{
|
.row {
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
}
|
}
|
||||||
.logo{
|
.logo {
|
||||||
width: 250px;
|
width: 250px;
|
||||||
background-color:white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
.logs{
|
.logs {
|
||||||
height:350px;
|
height: 350px;
|
||||||
overflow:auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content{ flex-grow: 1; }
|
.content {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
.gallery{
|
.gallery {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
margin-bottom: 50px;
|
margin-bottom: 50px;
|
||||||
box-shadow: 10px 10px 5px black;
|
box-shadow: 10px 10px 5px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-custom{
|
.bg-custom {
|
||||||
background-color:#130f40;
|
background-color: #130f40;
|
||||||
}
|
}
|
||||||
.button-fixed{
|
.button-fixed {
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 0;
|
right: 0;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
.fas{
|
.fas {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
}
|
}
|
||||||
p{
|
p {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-black{
|
.text-black {
|
||||||
color:black;
|
color: black;
|
||||||
}
|
}
|
||||||
.text-white{
|
.text-white {
|
||||||
color:white;
|
color: white;
|
||||||
}
|
}
|
||||||
.form-check-input{
|
.form-check-input {
|
||||||
margin-left:0;
|
margin-left: 0;
|
||||||
padding:inherit;
|
padding: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="radio"]:checked ~ .reveal-if-active,
|
input[type="radio"]:checked ~ .reveal-if-active,
|
||||||
|
|
@ -86,18 +95,21 @@ input[type="checkbox"]:checked ~ .reveal-if-active {
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
h1, h2, h3, h4, h5, h6, p, label{
|
h3,
|
||||||
font-family: 'Montserrat', sans-serif;
|
h4,
|
||||||
color
|
h5,
|
||||||
|
h6,
|
||||||
|
p,
|
||||||
|
label {
|
||||||
|
font-family: "Montserrat", sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
h1{
|
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
.shadow{
|
.shadow {
|
||||||
box-shadow: 5px 10px #888888;
|
box-shadow: 5px 10px #888888;
|
||||||
}
|
}
|
||||||
$w: Min(10em, 100%);
|
$w: Min(10em, 100%);
|
||||||
|
|
@ -106,5 +118,23 @@ $w: Min(10em, 100%);
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, $w);
|
grid-template-columns: repeat(auto-fit, $w);
|
||||||
|
|
||||||
> * { width: $w; }
|
> * {
|
||||||
|
width: $w;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.logo {
|
||||||
|
margin-bottom: -50px;
|
||||||
|
align-content: center;
|
||||||
|
width: 115px;
|
||||||
|
padding: 15px;
|
||||||
|
border-radius: 65px;
|
||||||
|
border-color: rgba(113, 63, 230, 1);
|
||||||
|
border-width: 2px;
|
||||||
|
border-style: solid;
|
||||||
|
box-shadow: 5px 5px 18px black;
|
||||||
|
background: linear-gradient(
|
||||||
|
180deg,
|
||||||
|
rgba(14, 3, 40, 1) 0%,
|
||||||
|
rgba(38, 9, 108, 1) 100%
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,13 @@ module.exports = function (fastify, opts, done) {
|
||||||
{
|
{
|
||||||
preValidation: [validateAdmin],
|
preValidation: [validateAdmin],
|
||||||
},
|
},
|
||||||
function (req, res) {
|
async function (req, res) {
|
||||||
|
let checkalive = await client.ping();
|
||||||
|
if (checkalive) {
|
||||||
|
alive = true;
|
||||||
|
} else {
|
||||||
|
alive = false;
|
||||||
|
}
|
||||||
let successes = req.session.get("successes");
|
let successes = req.session.get("successes");
|
||||||
req.session.set("successes", "");
|
req.session.set("successes", "");
|
||||||
let errors = req.session.get("errors");
|
let errors = req.session.get("errors");
|
||||||
|
|
@ -26,6 +32,7 @@ module.exports = function (fastify, opts, done) {
|
||||||
errors: errors,
|
errors: errors,
|
||||||
successes: successes,
|
successes: successes,
|
||||||
random: papy(),
|
random: papy(),
|
||||||
|
alive: alive,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,13 @@ module.exports = function (fastify, opts, done) {
|
||||||
{
|
{
|
||||||
preValidation: [validate],
|
preValidation: [validate],
|
||||||
},
|
},
|
||||||
function (req, res) {
|
async function (req, res) {
|
||||||
|
let checkalive = await client.ping();
|
||||||
|
if (checkalive) {
|
||||||
|
alive = true;
|
||||||
|
} else {
|
||||||
|
alive = false;
|
||||||
|
}
|
||||||
let successes = req.session.get("successes");
|
let successes = req.session.get("successes");
|
||||||
req.session.set("successes", "");
|
req.session.set("successes", "");
|
||||||
let errors = req.session.get("errors");
|
let errors = req.session.get("errors");
|
||||||
|
|
@ -28,6 +34,7 @@ module.exports = function (fastify, opts, done) {
|
||||||
successes: successes,
|
successes: successes,
|
||||||
user: req.session.get("user"),
|
user: req.session.get("user"),
|
||||||
admin: req.session.get("admin"),
|
admin: req.session.get("admin"),
|
||||||
|
alive: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
352
views/index.js
352
views/index.js
|
|
@ -1,352 +0,0 @@
|
||||||
const root = process.env.PWD;
|
|
||||||
const express = require("express");
|
|
||||||
const path = require("path");
|
|
||||||
const https = require("https");
|
|
||||||
const got = require("got");
|
|
||||||
const bodyParser = require("body-parser");
|
|
||||||
const expressValidator = require("express-validator");
|
|
||||||
const flash = require("connect-flash");
|
|
||||||
const session = require("express-session");
|
|
||||||
const { ensureAuthenticated } = require(`${root}/config/auth.js`);
|
|
||||||
const app = express();
|
|
||||||
const MemoryStore = require("memorystore")(session);
|
|
||||||
const url = require("url");
|
|
||||||
const dotenv = require("dotenv");
|
|
||||||
const fs = require("fs");
|
|
||||||
const mongoose = require("mongoose");
|
|
||||||
const { CCashClient } = require("ccash-client-js");
|
|
||||||
dotenv.config();
|
|
||||||
const { postUser } = require(`${root}/helpers/functions.js`);
|
|
||||||
|
|
||||||
app.set("views", path.join(__dirname, "views"));
|
|
||||||
app.set("view engine", "pug");
|
|
||||||
app.use(flash());
|
|
||||||
app.use(require("connect-flash")());
|
|
||||||
app.use(express.static(path.join(__dirname, "public")));
|
|
||||||
app.use(express.json());
|
|
||||||
app.use(
|
|
||||||
bodyParser.urlencoded({
|
|
||||||
extended: true,
|
|
||||||
})
|
|
||||||
);
|
|
||||||
app.use(function (req, res, next) {
|
|
||||||
res.locals.messages = require("express-messages")(req, res);
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
app.set("trust proxy", 1); // trust first proxy
|
|
||||||
const secure = process.env.SECURE;
|
|
||||||
app.use(
|
|
||||||
session({
|
|
||||||
secret: "fuck shit cunt",
|
|
||||||
resave: true,
|
|
||||||
store: new MemoryStore({
|
|
||||||
checkPeriod: 86400000, // prune expired entries every 24h
|
|
||||||
}),
|
|
||||||
saveUninitialized: true,
|
|
||||||
cookie: { secure: secure, maxAge: 86400000 },
|
|
||||||
})
|
|
||||||
);
|
|
||||||
app.use(
|
|
||||||
expressValidator({
|
|
||||||
errorFormatter: function (param, msg, value) {
|
|
||||||
var namespace = param.split("."),
|
|
||||||
root = namespace.shift(),
|
|
||||||
formParam = root;
|
|
||||||
|
|
||||||
while (namespace.length) {
|
|
||||||
formParam += "[" + namespace.shift() + "]";
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
param: formParam,
|
|
||||||
msg: msg,
|
|
||||||
value: value,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
function papy() {
|
|
||||||
const rndInt = Math.floor(Math.random() * 1337);
|
|
||||||
let random = false;
|
|
||||||
if (rndInt == 420) {
|
|
||||||
random = true;
|
|
||||||
}
|
|
||||||
return random;
|
|
||||||
}
|
|
||||||
|
|
||||||
app.post("/setup", async function (req, res) {
|
|
||||||
const { url, secure } = req.body;
|
|
||||||
if (secure) {
|
|
||||||
process.env.SECURE = true;
|
|
||||||
}
|
|
||||||
process.env.BANKAPIURL = url;
|
|
||||||
console.log(process.env.BANKAPIURL);
|
|
||||||
fs.writeFileSync(
|
|
||||||
".env",
|
|
||||||
"BANKAPIURL=" +
|
|
||||||
process.env.BANKAPIURL +
|
|
||||||
"\n" +
|
|
||||||
"SECURE=" +
|
|
||||||
process.env.SECURE +
|
|
||||||
"\nSETUP=true"
|
|
||||||
);
|
|
||||||
fs.writeFileSync("tmp/restart.txt", "");
|
|
||||||
res.redirect("/");
|
|
||||||
});
|
|
||||||
|
|
||||||
app.get("/", async function (req, res) {
|
|
||||||
if (process.env.SETUP == false || !process.env.SETUP) {
|
|
||||||
res.render("setup");
|
|
||||||
} else {
|
|
||||||
const client = new CCashClient(process.env.BANKAPIURL);
|
|
||||||
let checkalive;
|
|
||||||
try {
|
|
||||||
checkalive = await client.help();
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
}
|
|
||||||
let alive = false;
|
|
||||||
try {
|
|
||||||
if (checkalive) {
|
|
||||||
alive = true;
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
res.render("index", {
|
|
||||||
user: req.session.user,
|
|
||||||
admin: req.session.admin,
|
|
||||||
alive: alive,
|
|
||||||
url: process.env.BANKAPIURL,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
|
||||||
const client = new CCashClient(process.env.BANKAPIURL);
|
|
||||||
let successes = req.session.successes;
|
|
||||||
let errors = req.session.errors;
|
|
||||||
req.session.errors = [];
|
|
||||||
let admin;
|
|
||||||
try {
|
|
||||||
admin = req.session.admin;
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
}
|
|
||||||
let balance = 0;
|
|
||||||
try {
|
|
||||||
balance = await client.balance(req.session.user);
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
}
|
|
||||||
let logsent;
|
|
||||||
console.log("start " + Date.now());
|
|
||||||
try {
|
|
||||||
const { user, password } = req.session;
|
|
||||||
logsent = await client.log(user, password);
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e);
|
|
||||||
}
|
|
||||||
console.log(logsent);
|
|
||||||
let logrec = logsent;
|
|
||||||
let graphlog = logsent;
|
|
||||||
if (graphlog != null) {
|
|
||||||
graphlog = graphlog.reverse();
|
|
||||||
}
|
|
||||||
let graphdata = "";
|
|
||||||
let currentbal = balance;
|
|
||||||
if (graphlog) {
|
|
||||||
for (i = graphlog.length - 1; i > -1; 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 {
|
|
||||||
graphlog = undefined;
|
|
||||||
}
|
|
||||||
if (graphdata != "") {
|
|
||||||
graphdata =
|
|
||||||
", [" + parseInt(graphlog.length) + "," + balance + "]" + graphdata;
|
|
||||||
graphdata = '["transaction", "balance"]' + graphdata;
|
|
||||||
}
|
|
||||||
if (logsent == null) {
|
|
||||||
logsent = undefined;
|
|
||||||
} else {
|
|
||||||
logsent = await logsent.filter(({ from }) => from === req.session.user);
|
|
||||||
}
|
|
||||||
if (logrec == null) {
|
|
||||||
logrec = undefined;
|
|
||||||
} else {
|
|
||||||
logrec = await logrec.filter(({ to }) => to === req.session.user);
|
|
||||||
}
|
|
||||||
if (logsent) {
|
|
||||||
for (i in logrec) {
|
|
||||||
logrec[i].time = new Date(logrec[i].time);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (logrec) {
|
|
||||||
for (i in logsent) {
|
|
||||||
logsent[i].time = new Date(logsent[i].time);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (logrec != null) {
|
|
||||||
logrec.reverse();
|
|
||||||
}
|
|
||||||
if (logsent != null) {
|
|
||||||
logsent.reverse();
|
|
||||||
}
|
|
||||||
let maxgraph = balance + 1000;
|
|
||||||
console.log("begin render " + Date.now());
|
|
||||||
res.render("bankf", {
|
|
||||||
maxgraph: maxgraph,
|
|
||||||
graphdata: graphdata,
|
|
||||||
logrec: logrec,
|
|
||||||
logsent: logsent,
|
|
||||||
user: req.session.user,
|
|
||||||
balance: balance,
|
|
||||||
user: req.session.user,
|
|
||||||
admin: req.session.admin,
|
|
||||||
sucesses: successes,
|
|
||||||
errors: errors,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/sendfunds", async function (req, res) {
|
|
||||||
const client = new CCashClient(process.env.BANKAPIURL);
|
|
||||||
let { amount, name, senderpass } = req.body;
|
|
||||||
req.session.errors = [];
|
|
||||||
req.session.successes = [];
|
|
||||||
let a_name = req.session.user;
|
|
||||||
let result;
|
|
||||||
result = await client.sendFunds(a_name, senderpass, name, amount);
|
|
||||||
console.log(result);
|
|
||||||
if (result == 1) {
|
|
||||||
req.session.successes.push({ msg: "Transfer successful" });
|
|
||||||
//post details
|
|
||||||
res.redirect("/BankF");
|
|
||||||
} else if (result == -1) {
|
|
||||||
req.session.errors.push({ msg: "Transfer Unsuccessful: User not Found" });
|
|
||||||
res.redirect("/Bankf");
|
|
||||||
} else if (result == -2) {
|
|
||||||
req.session.errors.push({ msg: "Transfer Unsuccessful: Wrong Password" });
|
|
||||||
res.redirect("/Bankf");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/register", async function (req, res) {
|
|
||||||
const client = new CCashClient(process.env.BANKAPIURL);
|
|
||||||
var { name, password, password2 } = req.body;
|
|
||||||
req.session.errors = [];
|
|
||||||
req.session.successes = [];
|
|
||||||
if (!name || !password || !password2) {
|
|
||||||
req.session.errors.push({ msg: "please fill in all fields" });
|
|
||||||
} else if (password != password2) {
|
|
||||||
req.session.errors.push({ msg: "Passwords don't match" });
|
|
||||||
} else if (password.length < 6) {
|
|
||||||
req.session.errors.push({
|
|
||||||
msg: "Password must be at least 6 characters",
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
let checkuser = await postUser(name, password);
|
|
||||||
console.log(checkuser);
|
|
||||||
if (checkuser == -4) {
|
|
||||||
req.session.errors.push({ msg: "Error: Name too long" });
|
|
||||||
res.redirect("/register");
|
|
||||||
} else if (checkuser == -5) {
|
|
||||||
req.session.errors.push({ msg: "Error: User Already Exists" });
|
|
||||||
res.redirect("/register");
|
|
||||||
} else {
|
|
||||||
req.session.successes.push({ msg: "Account Created! please Log in" });
|
|
||||||
res.redirect("/login");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post("/login", async function (req, res) {
|
|
||||||
const client = new CCashClient(process.env.BANKAPIURL);
|
|
||||||
if (req.session.user) {
|
|
||||||
res.redirect("/");
|
|
||||||
}
|
|
||||||
req.session.regenerate(function (err) {});
|
|
||||||
const { name, password } = req.body;
|
|
||||||
let adminTest;
|
|
||||||
try {
|
|
||||||
adminTest = await client.adminVerifyPassword(password);
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
}
|
|
||||||
console.log(adminTest);
|
|
||||||
if (adminTest != -2) {
|
|
||||||
req.session.admin = adminTest;
|
|
||||||
req.session.adminp = password;
|
|
||||||
req.session.user = name;
|
|
||||||
req.session.password = password;
|
|
||||||
res.redirect("/BankF");
|
|
||||||
} else {
|
|
||||||
let verified;
|
|
||||||
verified = await client.verifyPassword(name, password);
|
|
||||||
console.log(verified);
|
|
||||||
if (verified == 1) {
|
|
||||||
req.session.user = name;
|
|
||||||
req.session.password = password;
|
|
||||||
res.redirect("/BankF");
|
|
||||||
} else {
|
|
||||||
req.session.errors = [];
|
|
||||||
req.session.errors.push({ msg: "Password wrong" });
|
|
||||||
res.redirect("/login");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
let admin = require("./routes/admin");
|
|
||||||
app.use("/admin", admin);
|
|
||||||
|
|
||||||
let settings = require("./routes/settings");
|
|
||||||
app.use("/settings", settings);
|
|
||||||
|
|
||||||
app.get("/logout", function (req, res) {
|
|
||||||
req.session.regenerate(function (err) {
|
|
||||||
res.render("login", {
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
app.get("/login", function (req, res) {
|
|
||||||
let successes = req.session.successes;
|
|
||||||
let errors = req.session.errors;
|
|
||||||
req.session.regenerate(function (err) {
|
|
||||||
res.render("login", {
|
|
||||||
successes: successes,
|
|
||||||
errors: errors,
|
|
||||||
user: req.session.user,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
app.get("/register", function (req, res) {
|
|
||||||
let successes = req.session.successes;
|
|
||||||
req.session.successes = [];
|
|
||||||
let errors = req.session.errors;
|
|
||||||
req.session.errors = [];
|
|
||||||
res.render("register", {
|
|
||||||
errors: errors,
|
|
||||||
successes: successes,
|
|
||||||
user: req.session.user,
|
|
||||||
admin: req.session.admin,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
process.on("SIGINT", function () {
|
|
||||||
process.exit();
|
|
||||||
});
|
|
||||||
app.listen(process.env.PORT || 3000, function () {
|
|
||||||
console.log("Server started on port 3000...");
|
|
||||||
});
|
|
||||||
|
|
@ -13,13 +13,18 @@ html
|
||||||
body
|
body
|
||||||
nav.navbar.navbar-expand-lg.navbar-dark.navbarrr.shadow-lg
|
nav.navbar.navbar-expand-lg.navbar-dark.navbarrr.shadow-lg
|
||||||
.container
|
.container
|
||||||
a.navbar-brand(href='/')
|
.logo
|
||||||
img(src="/CCashLogo3.png" style="width:75px; height:74px")
|
a.navbar-brand(href='/')
|
||||||
|
img(src="/CCashLogo3.png" style="width:75px; height:74px")
|
||||||
button.navbar-toggler(type='button', data-toggle='collapse', data-target='#navbars', aria-controls='navbars', aria-expanded='false', aria-label='Toggle navigation')
|
button.navbar-toggler(type='button', data-toggle='collapse', data-target='#navbars', aria-controls='navbars', aria-expanded='false', aria-label='Toggle navigation')
|
||||||
span.navbar-toggler-icon
|
span.navbar-toggler-icon
|
||||||
#navbars.collapse.navbar-collapse
|
#navbars.collapse.navbar-collapse
|
||||||
ul.navbar-nav.mr-auto
|
ul.navbar-nav.mr-auto
|
||||||
|
li.nav-item
|
||||||
|
if alive
|
||||||
|
p.text-white Server is Online
|
||||||
|
if !alive
|
||||||
|
p(style="color: red;") Server is offline
|
||||||
ul.navbar-nav.mr-right.text-white
|
ul.navbar-nav.mr-right.text-white
|
||||||
if user == undefined
|
if user == undefined
|
||||||
li.nav-item
|
li.nav-item
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue