mirror of
https://github.com/janishutz/libreevent.git
synced 2025-11-25 21:34:24 +00:00
add more mysql stuff
This commit is contained in:
28
src/server/backend/credentials/2fa.js
Normal file
28
src/server/backend/credentials/2fa.js
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* libreevent - 2fa.js
|
||||
*
|
||||
* Created by Janis Hutz 07/11/2023, Licensed under the GPL V3 License
|
||||
* https://janishutz.com, development@janishutz.com
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
const token = require( '../token.js' );
|
||||
|
||||
class TwoFA {
|
||||
constructor () {
|
||||
this.tokenStore = {};
|
||||
}
|
||||
|
||||
registerStandardAuthentication () {
|
||||
let token = token.generateToken();
|
||||
this.tokenStore[ token ] = 'standard';
|
||||
}
|
||||
|
||||
registerEnhancedAuthentication () {
|
||||
let token = token.generateToken();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = TwoFA;
|
||||
@@ -16,6 +16,10 @@ module.exports.getData = function getData ( db, searchQuery ) {
|
||||
} );
|
||||
};
|
||||
|
||||
module.exports.writeData = function writeData ( db ) {
|
||||
|
||||
};
|
||||
|
||||
module.exports.getJSONData = function getData ( file ) {
|
||||
return new Promise( ( resolve, reject ) => {
|
||||
fs.readFile( path.join( __dirname + '/../../' + file ), ( error, data ) => {
|
||||
|
||||
@@ -1,15 +1,40 @@
|
||||
const mysql = require( 'promise-mysql' );
|
||||
/*
|
||||
* libreevent - mysqldb.js
|
||||
*
|
||||
* Created by Janis Hutz 07/12/2023, Licensed under the GPL V3 License
|
||||
* https://janishutz.com, development@janishutz.com
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
const mysql = require( 'mysql' );
|
||||
const db = require( './db.js' );
|
||||
|
||||
// If the connection does not work for you, you will need to add your ip
|
||||
// to the whitelist of the database
|
||||
|
||||
class SQLDB {
|
||||
constructor () {
|
||||
this.sqlconnection = mysql.createConnection( {
|
||||
host: 'janishutz.com',
|
||||
port: '3306',
|
||||
user: 'janishut_libreeventTest',
|
||||
password: '^PVgj&xkaQKmMDCgz&2^aCaYxc7nCS#*%7%',
|
||||
connectionLimit: 200
|
||||
this.sqlConnection = mysql.createConnection( db.getJSONDataSync( '/config/db.config.secret.json' ) );
|
||||
}
|
||||
|
||||
connect () {
|
||||
this.sqlConnection.connect( function( err ) {
|
||||
if ( err ) {
|
||||
console.error( 'error connecting: ' + err.stack );
|
||||
return;
|
||||
}
|
||||
return 'connection';
|
||||
} );
|
||||
}
|
||||
|
||||
disconnect () {
|
||||
this.sqlConnection.end();
|
||||
}
|
||||
|
||||
async setupDB () {
|
||||
this.sqlConnection.query( '' );
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = SQLDB;
|
||||
@@ -12,7 +12,7 @@ const html2text = require( 'html-to-text' );
|
||||
|
||||
const db = require( '../db/db.js' );
|
||||
|
||||
let transporter = mailer.createTransport( db.getJSONDataSync( 'mail.secret.json' ) );
|
||||
let transporter = mailer.createTransport( db.getJSONDataSync( '/config/mail.config.secret.json' ) );
|
||||
|
||||
|
||||
class MailManager {
|
||||
|
||||
@@ -8,20 +8,16 @@
|
||||
*/
|
||||
|
||||
|
||||
class TokenGenerator {
|
||||
genTok () {
|
||||
let token = '';
|
||||
let min = 48;
|
||||
let max = 122;
|
||||
for ( let i = 0; i < 61; i++ ) {
|
||||
let randomNumber = Math.floor( Math.random() * ( max - min ) ) + min;
|
||||
while ( randomNumber === 92 || randomNumber === 58 || randomNumber === 96 || randomNumber === 94 || randomNumber === 64 ) {
|
||||
randomNumber = Math.floor( Math.random() * ( max - min ) ) + min;
|
||||
}
|
||||
token += String.fromCharCode( randomNumber );
|
||||
module.exports.generateToken = () => {
|
||||
let token = '';
|
||||
let min = 48;
|
||||
let max = 122;
|
||||
for ( let i = 0; i < 61; i++ ) {
|
||||
let randomNumber = Math.floor( Math.random() * ( max - min ) ) + min;
|
||||
while ( randomNumber === 92 || randomNumber === 58 || randomNumber === 96 || randomNumber === 94 || randomNumber === 64 ) {
|
||||
randomNumber = Math.floor( Math.random() * ( max - min ) ) + min;
|
||||
}
|
||||
return token;
|
||||
token += String.fromCharCode( randomNumber );
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = TokenGenerator;
|
||||
return token;
|
||||
};
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
const db = require( './db/db.js' );
|
||||
const pwdmanager = require( './credentials/pwdmanager.js' );
|
||||
const auth = require( './credentials/2fa.js' );
|
||||
const twoFA = new auth();
|
||||
|
||||
module.exports = ( app, settings ) => {
|
||||
app.post( '/api/reserveTicket', ( request, response ) => {
|
||||
@@ -20,9 +22,12 @@ module.exports = ( app, settings ) => {
|
||||
if ( request.body.mail && request.body.password ) {
|
||||
pwdmanager.checkpassword( request.body.mail, request.body.password ).then( data => {
|
||||
if ( data ) {
|
||||
if ( settings.twoFA ) {
|
||||
if ( settings.twoFA === 'standard' ) {
|
||||
// TODO: Support both methods of 2fa
|
||||
response.send( '2fa' );
|
||||
} else if ( settings.twoFA === 'enhanced' ) {
|
||||
// TODO: Support both methods of 2fa
|
||||
response.send( '2fa+' );
|
||||
} else {
|
||||
request.session.loggedInUser = true;
|
||||
response.send( 'ok' );
|
||||
@@ -35,4 +40,8 @@ module.exports = ( app, settings ) => {
|
||||
response.send( 'missingCredentials' );
|
||||
}
|
||||
} );
|
||||
|
||||
app.get( '/user/2fa', ( request, response ) => {
|
||||
|
||||
} );
|
||||
};
|
||||
Reference in New Issue
Block a user