mirror of
https://github.com/janishutz/libreevent.git
synced 2025-11-25 13:24:24 +00:00
root login + admin account settings
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
|
||||
// const db = require( './db/db.js' );
|
||||
const pwdmanager = require( './pwdmanager.js' );
|
||||
const db = require( '../backend/db/db.js' );
|
||||
const auth = require( './2fa.js' );
|
||||
const twoFA = new auth();
|
||||
const path = require( 'path' );
|
||||
@@ -44,7 +45,15 @@ module.exports = ( app, settings ) => {
|
||||
let res = twoFA.registerEnhancedAuthentication();
|
||||
let ipRetrieved = request.headers[ 'x-forwarded-for' ];
|
||||
let ip = ipRetrieved ? ipRetrieved.split( /, / )[ 0 ] : request.connection.remoteAddress;
|
||||
mailManager.sendMail( request.body.mail, await twoFA.generateTwoFAMail( res.token, ip, settings.yourDomain, settings.name ), 'Verify admin account login', settings.mailSender );
|
||||
if ( request.body.mail === 'root' ) {
|
||||
db.getJSONDataSimple( 'rootAccount', 'email' ).then( email => {
|
||||
( async () => {
|
||||
mailManager.sendMail( email, await twoFA.generateTwoFAMail( res.token, ip, settings.yourDomain, settings.name ), 'Verify admin account login', settings.mailSender );
|
||||
} )();
|
||||
} );
|
||||
} else {
|
||||
mailManager.sendMail( request.body.mail, await twoFA.generateTwoFAMail( res.token, ip, settings.yourDomain, settings.name ), 'Verify admin account login', settings.mailSender );
|
||||
}
|
||||
request.session.token = res.token;
|
||||
response.send( { 'status': '2fa+', 'code': res.code } );
|
||||
} )();
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
|
||||
const db = require( '../../backend/db/db.js' );
|
||||
const pwdmanager = require( '../pwdmanager.js' );
|
||||
const fs = require( 'fs' );
|
||||
const path = require( 'path' );
|
||||
const pm = require( '../../backend/plugins/manager.js' );
|
||||
@@ -113,17 +114,33 @@ class POSTHandler {
|
||||
reject( { 'code': 500, 'error': error } );
|
||||
} );
|
||||
} else if ( call === 'createAdminAccount' ) {
|
||||
db.writeDataSimple( 'admin', 'email', data.email, data ).then( resp => {
|
||||
resolve( resp );
|
||||
} ).catch( error => {
|
||||
reject( { 'code': 500, 'error': error } );
|
||||
let dat = data;
|
||||
pwdmanager.hashPassword( dat.pass ).then( hash => {
|
||||
dat[ 'pass' ] = hash;
|
||||
db.writeDataSimple( 'admin', 'email', data.email, dat ).then( resp => {
|
||||
resolve( resp );
|
||||
} ).catch( error => {
|
||||
reject( { 'code': 500, 'error': error } );
|
||||
} );
|
||||
} );
|
||||
} else if ( call === 'updateAdminAccount' ) {
|
||||
db.writeDataSimple( 'admin', 'email', data.email, data ).then( resp => {
|
||||
resolve( resp );
|
||||
} ).catch( error => {
|
||||
reject( { 'code': 500, 'error': error } );
|
||||
} );
|
||||
if ( data.pass ) {
|
||||
let dat = data;
|
||||
pwdmanager.hashPassword( data.pass ).then( hash => {
|
||||
dat[ 'pass' ] = hash;
|
||||
db.writeDataSimple( 'admin', 'email', data.email, dat ).then( resp => {
|
||||
resolve( resp );
|
||||
} ).catch( error => {
|
||||
reject( { 'code': 500, 'error': error } );
|
||||
} );
|
||||
} );
|
||||
} else {
|
||||
db.writeDataSimple( 'admin', 'email', data.email, data ).then( resp => {
|
||||
resolve( resp );
|
||||
} ).catch( error => {
|
||||
reject( { 'code': 500, 'error': error } );
|
||||
} );
|
||||
}
|
||||
} else if ( call === 'deleteAdminAccount' ) {
|
||||
db.deleteDataSimple( 'admin', 'email', data.email ).then( resp => {
|
||||
resolve( resp );
|
||||
|
||||
@@ -23,7 +23,7 @@ module.exports.checkpassword = ( username, password ) => {
|
||||
if ( username === 'root' ) {
|
||||
db.getJSONData( 'rootAccount' ).then( account => {
|
||||
bcrypt.compare( password, account.pass ).then( res => {
|
||||
resolve( { 'status': res, 'twoFA': true } );
|
||||
resolve( { 'status': res, 'twoFA': 'enhanced' } );
|
||||
} );
|
||||
} );
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user