mirror of
https://github.com/Expand-sys/ccashfrontend
synced 2025-12-17 07:12:12 +11:00
big changes
- market is now able to be turned off meaning merge to main incoming - fixed some bugs and inefficent lines of code - added admin ability to change bank api url and mongo url
This commit is contained in:
parent
9d4770436a
commit
89e49ed454
8 changed files with 179 additions and 38 deletions
61
index.js
61
index.js
|
|
@ -14,6 +14,7 @@ const url = require('url')
|
|||
const dotenv = require('dotenv');
|
||||
const fs = require('fs');
|
||||
let Log = require('./schemas/log.js');
|
||||
const mongoose = require('mongoose')
|
||||
dotenv.config();
|
||||
//mongodb connection
|
||||
|
||||
|
|
@ -64,25 +65,48 @@ app.use(expressValidator({
|
|||
}
|
||||
}));
|
||||
app.post('/setup', async function(req, res){
|
||||
|
||||
|
||||
console.log(req.body)
|
||||
let mongo = req.body.mongo;
|
||||
let {mongo, url, banksecure, marketplace} = req.body;
|
||||
process.env.MONGO = mongo
|
||||
let apiurl = 'BANKAPIURL='+req.body.url
|
||||
process.env.BANKAPIURL = req.body.url
|
||||
let banksecure = 'SECURE=false'
|
||||
process.env.MARKETPLACE = false
|
||||
if(marketplace){
|
||||
process.env.MARKETPLACE = true
|
||||
}
|
||||
if(!url.endsWith('/')){
|
||||
url=url+"/"
|
||||
}
|
||||
process.env.BANKAPIURL =url
|
||||
process.env.SECURE = false
|
||||
if(req.body.secure){
|
||||
banksecure = 'SECURE=true'
|
||||
process.env.SECURE = true
|
||||
if(!banksecure){
|
||||
banksecure = false
|
||||
process.env.SECURE = false
|
||||
}
|
||||
process.env.SETUP = true
|
||||
fs.writeFileSync('.env', apiurl+'\n'+banksecure+'\n'+mongo+'\nSETUP=true')
|
||||
fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true')
|
||||
dotenv.config();
|
||||
if(process.env.MARKETPLACE){
|
||||
mongoose.connect(process.env.MONGO,{
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
useFindAndModify: true,
|
||||
});
|
||||
|
||||
let db = mongoose.connection;
|
||||
db.once('open', function(){
|
||||
console.log('Connected to MongoDB');
|
||||
})
|
||||
|
||||
//check for DB errors
|
||||
db.on('error', function(err){
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
res.redirect('/')
|
||||
})
|
||||
app.get('/', async function(req, res){
|
||||
if(setup==false){
|
||||
if(!process.env.SETUP){
|
||||
res.render('setup')
|
||||
}else{
|
||||
|
||||
|
|
@ -105,7 +129,8 @@ app.get('/', async function(req, res){
|
|||
res.render('index', {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
alive: alive
|
||||
alive: alive,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
}
|
||||
});
|
||||
|
|
@ -179,6 +204,7 @@ app.get('/BankF', ensureAuthenticated, async function(req, res){
|
|||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
sucesses: successes,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
});
|
||||
|
||||
|
|
@ -267,6 +293,7 @@ app.post('/sendfunds', async function(req, res){
|
|||
balance:balance.value,
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
}
|
||||
})
|
||||
|
|
@ -289,7 +316,8 @@ app.post('/register', async function(req, res){
|
|||
}
|
||||
if(errors[0]){
|
||||
res.render('register', {
|
||||
errors:errors
|
||||
errors:errors,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
} else {
|
||||
if(postUser(name, password)){
|
||||
|
|
@ -297,6 +325,7 @@ app.post('/register', async function(req, res){
|
|||
res.render('login',{
|
||||
errors:errors,
|
||||
successes: successes,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -304,6 +333,7 @@ app.post('/register', async function(req, res){
|
|||
errors.push({msg: "User already exists"})
|
||||
res.render('register',{
|
||||
errors:errors,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
}
|
||||
})
|
||||
|
|
@ -349,7 +379,8 @@ app.post('/login', async function(req, res){
|
|||
if(verified.body.value == 0){
|
||||
errors.push({msg: 'Password wrong'})
|
||||
res.render('login',{
|
||||
errors:errors
|
||||
errors:errors,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
}else if(verified.body.value == 1){
|
||||
req.session.user = name;
|
||||
|
|
@ -358,7 +389,8 @@ app.post('/login', async function(req, res){
|
|||
} else {
|
||||
errors.push({msg: 'User not found'})
|
||||
res.render('login',{
|
||||
errors:errors
|
||||
errors:errors,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -383,6 +415,7 @@ app.use('/marketplace', marketplace)
|
|||
app.get('/logout', function(req, res){
|
||||
req.session.regenerate(function(err) {
|
||||
res.render('login', {
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
})
|
||||
});
|
||||
|
|
@ -392,6 +425,7 @@ app.get('/login', function(req, res){
|
|||
req.session.regenerate(function(err) {
|
||||
res.render('login', {
|
||||
user: req.session.user,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
})
|
||||
});
|
||||
|
|
@ -400,6 +434,7 @@ app.get('/register', function(req, res){
|
|||
res.render('register', {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -3,20 +3,52 @@ const router = express.Router();
|
|||
const path = require('path');
|
||||
const {ensureAuthenticated} = require("../config/auth.js")
|
||||
const {checkAdmin} = require ("../config/admin.js")
|
||||
var pug = require('pug');
|
||||
const pug = require('pug');
|
||||
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 MemoryStore = require('memorystore')(session)
|
||||
const fs = require('fs');
|
||||
const mongoose = require('mongoose')
|
||||
console.log('Sen was here')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mongo(){
|
||||
if(process.env.MONGO){
|
||||
console.log(process.env.MONGO)
|
||||
mongoose.connect(process.env.MONGO,{
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
useFindAndModify: true,
|
||||
});
|
||||
|
||||
let db = mongoose.connection;
|
||||
db.once('open', function(){
|
||||
console.log('Connected to MongoDB');
|
||||
})
|
||||
|
||||
//check for DB errors
|
||||
db.on('error', function(err){
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
router.get('/', checkAdmin, function(req, res){
|
||||
res.render('adminsettings', {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
|
||||
});
|
||||
|
|
@ -69,6 +101,7 @@ router.post('/user',checkAdmin , async function(req,res){
|
|||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -94,6 +127,7 @@ router.post('/baluser',checkAdmin , async function(req,res){
|
|||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -121,6 +155,7 @@ router.post('/bal',checkAdmin , async function(req,res){
|
|||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
})
|
||||
router.post('/userdelete', checkAdmin, async function(req,res){
|
||||
|
|
@ -152,6 +187,7 @@ router.post('/userdelete', checkAdmin, async function(req,res){
|
|||
admin: req.session.admin,
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
})
|
||||
router.post('/destroyallsessions', checkAdmin, async function(req,res) {
|
||||
|
|
@ -180,10 +216,40 @@ router.post('/destroyallsessions', checkAdmin, async function(req,res) {
|
|||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
errors: errors,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
router.post('/changebackend', checkAdmin, async function(req,res){
|
||||
let {url} = req.body;
|
||||
if(!url.endsWith('/')){
|
||||
url = url+'/'
|
||||
}
|
||||
process.env.BANKAPIURL = url
|
||||
fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true')
|
||||
res.redirect('../')
|
||||
})
|
||||
router.post('/mongodb', checkAdmin, async function(req,res){
|
||||
let {url} = req.body;
|
||||
process.env.MONGO = url
|
||||
|
||||
if(process.env.mongo.length < 3){
|
||||
process.env.MARKETPLACE = false
|
||||
}
|
||||
fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true')
|
||||
try{
|
||||
mongo()
|
||||
}catch(e){
|
||||
console.log(e)
|
||||
}
|
||||
|
||||
res.redirect('../')
|
||||
})
|
||||
router.post('/close', checkAdmin, async function(req,res){
|
||||
let {attempt} = req.body;
|
||||
let close;
|
||||
|
|
|
|||
|
|
@ -6,25 +6,33 @@ const mongoose = require('mongoose')
|
|||
const dotenv = require('dotenv');
|
||||
const got = require('got');
|
||||
const {ensureAuthenticated} = require("../config/auth.js")
|
||||
let db
|
||||
|
||||
|
||||
mongoose.connect(process.env.MONGO,{
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
useFindAndModify: true,
|
||||
});
|
||||
|
||||
let db = mongoose.connection;
|
||||
function mongo(){
|
||||
if(process.env.MONGO){
|
||||
console.log(process.env.MONGO)
|
||||
mongoose.connect(process.env.MONGO,{
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
useFindAndModify: true,
|
||||
});
|
||||
|
||||
//check connection
|
||||
db.once('open', function(){
|
||||
console.log('Connected to MongoDB');
|
||||
})
|
||||
let db = mongoose.connection;
|
||||
db.once('open', function(){
|
||||
console.log('Connected to MongoDB');
|
||||
})
|
||||
|
||||
//check for DB errors
|
||||
db.on('error', function(err){
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
mongo()
|
||||
|
||||
//check for DB errors
|
||||
db.on('error', function(err){
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
let Item = require('../schemas/item')
|
||||
let Listing = require('../schemas/listing')
|
||||
|
|
@ -46,6 +54,7 @@ router.get('/', function(req, res) {
|
|||
items: items,
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
});
|
||||
}
|
||||
})
|
||||
|
|
@ -58,6 +67,7 @@ router.get('/marketdash', ensureAuthenticated, function(req,res){
|
|||
user:req.session.user,
|
||||
admin:req.session.admin,
|
||||
inventory:inventory,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
})
|
||||
|
||||
|
|
@ -75,6 +85,7 @@ router.get('/:id',function(req, res){
|
|||
user:req.session.user,
|
||||
admin:req.session.admin,
|
||||
item:item,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
});
|
||||
})
|
||||
});
|
||||
|
|
@ -86,6 +97,7 @@ router.get('/:id/list',ensureAuthenticated, function(req,res){
|
|||
user:req.session.user,
|
||||
admin:req.session.admin,
|
||||
item:item,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
});
|
||||
});
|
||||
})
|
||||
|
|
@ -98,6 +110,7 @@ router.get('/:id/buy',ensureAuthenticated, function(req,res){
|
|||
listings:listings,
|
||||
user:req.session.user,
|
||||
admin:req.session.admin,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
});
|
||||
});
|
||||
})
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ router.post('/pass', ensureAuthenticated, async function(req, res){
|
|||
errors:errors,
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
}
|
||||
try{
|
||||
|
|
@ -62,6 +63,7 @@ router.post('/pass', ensureAuthenticated, async function(req, res){
|
|||
res.render('login', {
|
||||
successes: successes,
|
||||
errors:errors,
|
||||
marketplace: process.env.MARKETPLACE
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -57,6 +57,27 @@ block content
|
|||
br
|
||||
input.btn.btn-primary(type='submit',value='Submit')
|
||||
br
|
||||
.card.shadow-lg
|
||||
h4 Change backend URL
|
||||
form(method='POST', action='/admin/changebackend')
|
||||
#form-group
|
||||
p WARNING DO NOT PUT WRONG URL IN YOU WILL BREAK AND HAVE TO DELETE .ENV FILE TO FIX
|
||||
p This will change the backend that is being used by the front end
|
||||
label Enter URL of new BankAPI including trailing slash
|
||||
input.form-control(name='url', type='url')
|
||||
br
|
||||
input.btn.btn-warning(type='submit',value='Submit')
|
||||
br
|
||||
.card.shadow-lg
|
||||
h4 Change backend Mongodb URL
|
||||
form(method='POST', action='/admin/mongodb')
|
||||
#form-group
|
||||
p WARNING DO NOT PUT WRONG URL IN YOU WILL BREAK AND HAVE TO DELETE .ENV FILE TO FIX
|
||||
label Enter URL of new MongoDB or enter a space to turn off marketplace
|
||||
input.form-control(name='url', type='text')
|
||||
br
|
||||
input.btn.btn-warning(type='submit',value='Submit')
|
||||
br
|
||||
.card.shadow-lg
|
||||
h4 Destroy All Sessions
|
||||
form(method='POST', action='/admin/destroyallsessions')
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ html
|
|||
a.nav-link(href='/login').text-white Login
|
||||
li.nav-item
|
||||
a.nav-link(href='/register').text-white Register
|
||||
if marketplace == true
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace').text-white MarketPlace
|
||||
if user
|
||||
|
|
@ -30,10 +31,11 @@ html
|
|||
a.nav-link(href='/logout').text-white Log out
|
||||
li.nav-item
|
||||
a.nav-link(href='/BankF').text-white Bank
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace').text-white MarketPlace
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace/marketdash').text-white MarketPlace-Dashboard
|
||||
if marketplace == true
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace').text-white MarketPlace
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace/marketdash').text-white MarketPlace-Dashboard
|
||||
li.nav-item
|
||||
a.nav-link(href='/settings').text-white Settings
|
||||
if admin == true
|
||||
|
|
|
|||
|
|
@ -30,10 +30,11 @@ html
|
|||
a.nav-link(href='/logout').text-white Log out
|
||||
li.nav-item
|
||||
a.nav-link(href='/BankF').text-white Bank
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace').text-white MarketPlace
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace/marketdash').text-white MarketPlace-Dashboard
|
||||
if marketplace == true
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace').text-white MarketPlace
|
||||
li.nav-item
|
||||
a.nav-link(href='/marketplace/marketdash').text-white MarketPlace-Dashboard
|
||||
li.nav-item
|
||||
a.nav-link(href='/settings').text-white Settings
|
||||
if admin == true
|
||||
|
|
|
|||
|
|
@ -11,10 +11,11 @@ block content
|
|||
input.form-control(name='url', type='url')
|
||||
label SSL enabled on front end? leave unchecked if unsure:
|
||||
input.form-control(name='secure', type='checkbox')
|
||||
label MongoDB url
|
||||
label Enable marketplace:
|
||||
input.form-control(name='marketplace', type='checkbox')
|
||||
label MongoDB url insert if using marketplace
|
||||
input.form-control(name='mongo', type='text')
|
||||
br
|
||||
input.btn.btn-primary(type='submit',value='Submit')
|
||||
br
|
||||
br
|
||||
h2 THESE SETTINGS WILL REQUIRE A RESTART TO APPLY
|
||||
|
|
|
|||
Loading…
Reference in a new issue