mirror of
https://github.com/janishutz/libreevent.git
synced 2025-11-25 21:34:24 +00:00
Restructuring for new way of installing libreevent
This commit is contained in:
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
* libreevent - setupRoutes.js
|
||||
*
|
||||
* Created by Janis Hutz 07/18/2023, Licensed under the GPL V3 License
|
||||
* https://janishutz.com, development@janishutz.com
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
let db = null;
|
||||
let pwm = null;
|
||||
const fs = require( 'fs' );
|
||||
const path = require( 'path' );
|
||||
const bodyParser = require( 'body-parser' );
|
||||
|
||||
|
||||
module.exports = ( app, settings ) => {
|
||||
let isSetupComplete = settings.setupDone;
|
||||
/*
|
||||
Setup start route that checks if setup key was correct
|
||||
*/
|
||||
|
||||
app.post( '/setup/start', bodyParser.json(), ( request, response ) => {
|
||||
if ( request.body.token === '' + fs.readFileSync( path.join( __dirname + '/../setupkey.txt' ) ) ) {
|
||||
request.session.setupKeyOk = true;
|
||||
response.send( 'ok' );
|
||||
} else {
|
||||
response.status( 400 ).send( 'incorrect' );
|
||||
}
|
||||
} );
|
||||
|
||||
app.get( '/setup/getKeyStatus', ( req, res ) => {
|
||||
if ( req.session.setupKeyOk ) {
|
||||
res.send( 'ok' );
|
||||
} else {
|
||||
res.status( 403 ).send( 'unauthorized' );
|
||||
}
|
||||
} );
|
||||
|
||||
app.post( '/setup/saveBasicSettings', bodyParser.json(), ( req, res ) => {
|
||||
if ( req.session.setupKeyOk ) {
|
||||
fs.writeFileSync( path.join( __dirname + '/../config/db.config.json' ), JSON.stringify( req.body.db ) );
|
||||
let emailSettings = {};
|
||||
emailSettings[ 'host' ] = req.body.email.host;
|
||||
emailSettings[ 'port' ] = req.body.email.port;
|
||||
emailSettings[ 'secure' ] = false;
|
||||
emailSettings[ 'auth' ] = { 'user': req.body.email.user, 'pass': req.body.email.pass };
|
||||
let hostSplit = req.body.email.host.split( '.' );
|
||||
emailSettings[ 'tls' ] = { 'servername': ( hostSplit[ hostSplit.length - 2 ] + '.' + hostSplit[ hostSplit.length - 1 ] ) };
|
||||
fs.writeFileSync( path.join( __dirname + '/../config/mail.config.json' ), JSON.stringify( emailSettings ) );
|
||||
if ( db === null ) {
|
||||
db = require( '../backend/db/db.js' );
|
||||
pwm = require( '../admin/pwdmanager.js' );
|
||||
}
|
||||
let updatedSettings = settings;
|
||||
updatedSettings[ 'name' ] = req.body.websiteName;
|
||||
updatedSettings[ 'yourDomain' ] = req.body.yourDomain;
|
||||
updatedSettings[ 'mailSender' ] = req.body.mailDisplay;
|
||||
db.saveSettings( updatedSettings );
|
||||
res.send( 'ok' );
|
||||
} else {
|
||||
res.status( 403 ).send( 'unauthorized' );
|
||||
}
|
||||
} );
|
||||
|
||||
app.post( '/setup/saveRootAccount', bodyParser.json(), ( req, res ) => {
|
||||
if ( req.session.setupKeyOk ) {
|
||||
if ( db === null ) {
|
||||
db = require( '../backend/db/db.js' );
|
||||
pwm = require( '../admin/pwdmanager.js' );
|
||||
}
|
||||
pwm.hashPassword( req.body.password ).then( hash => {
|
||||
db.writeJSONData( 'rootAccount', { 'pass': hash, 'email': req.body.mail } );
|
||||
let updatedSettings = settings;
|
||||
updatedSettings[ 'setupDone' ] = true;
|
||||
updatedSettings[ 'init' ] = true;
|
||||
db.saveSettings( updatedSettings );
|
||||
isSetupComplete = true;
|
||||
( async () => {
|
||||
await db.initDB();
|
||||
db.reset();
|
||||
res.send( 'ok' );
|
||||
} )();
|
||||
} );
|
||||
} else {
|
||||
res.status( 403 ).send( 'unauthorized' );
|
||||
}
|
||||
} );
|
||||
|
||||
app.get( '/getSetupStatus', ( req, res ) => {
|
||||
res.send( isSetupComplete );
|
||||
} );
|
||||
};
|
||||
Reference in New Issue
Block a user