Update node settings

pull/1382/head
ShahanaFarooqui 2 weeks ago
parent 4e589c8349
commit 39b6f28765

@ -32,18 +32,20 @@ export const maskPasswords = (obj) => {
}
return obj;
};
export const removeAuthSecureData = (node) => {
delete node.authentication.macaroonPath;
delete node.authentication.runePath;
delete node.authentication.lnApiPassword;
delete node.authentication.options;
return node;
};
export const removeSecureData = (config) => {
delete config.rtlConfFilePath;
delete config.rtlPass;
delete config.multiPass;
delete config.multiPassHashed;
delete config.secret2FA;
config.nodes.map((node) => {
delete node.authentication.macaroonPath;
delete node.authentication.runePath;
delete node.authentication.lnApiPassword;
return node;
});
config.nodes.map((node) => removeAuthSecureData(node));
return config;
};
export const addSecureData = (config) => {
@ -216,17 +218,19 @@ export const updateNodeSettings = (req, res, next) => {
const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8'));
const node = config.nodes.find((node) => (node.index === req.session.selectedNode.index));
if (node && node.settings) {
node.settings = req.body;
node.settings = req.body.settings;
}
try {
fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8');
const selectedNode = common.findNode(req.session.selectedNode.index);
if (selectedNode && selectedNode.settings) {
selectedNode.settings = req.body;
selectedNode.settings = req.body.settings;
common.replaceNode(req, selectedNode);
}
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Node Settings Updated', data: maskPasswords(config) });
res.status(201).json({ message: 'Node Settings Updated Successfully' });
let responseNode = JSON.parse(JSON.stringify(common.selectedNode));
responseNode = removeAuthSecureData(responseNode);
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Node Settings Updated', data: responseNode });
res.status(201).json(responseNode);
}
catch (errRes) {
const errMsg = 'Update Node Settings Error';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -8,7 +8,7 @@ import { Database, DatabaseService } from '../../utils/database.js';
import { Logger, LoggerService } from '../../utils/logger.js';
import { Common, CommonService } from '../../utils/common.js';
import { WSServer } from '../../utils/webSocketServer.js';
import { ApplicationConfig, Authentication, SSO } from '../../models/config.model.js';
import { ApplicationConfig, Authentication, SSO, SelectedNode } from '../../models/config.model.js';
const options = { url: '' };
const logger: LoggerService = Logger;
@ -36,18 +36,21 @@ export const maskPasswords = (obj) => {
return obj;
};
export const removeAuthSecureData = (node: SelectedNode) => {
delete node.authentication.macaroonPath;
delete node.authentication.runePath;
delete node.authentication.lnApiPassword;
delete node.authentication.options;
return node;
};
export const removeSecureData = (config: ApplicationConfig) => {
delete config.rtlConfFilePath;
delete config.rtlPass;
delete config.multiPass;
delete config.multiPassHashed;
delete config.secret2FA;
config.nodes.map((node) => {
delete node.authentication.macaroonPath;
delete node.authentication.runePath;
delete node.authentication.lnApiPassword;
return node;
});
config.nodes.map((node) => removeAuthSecureData(node));
return config;
};
@ -221,17 +224,19 @@ export const updateNodeSettings = (req, res, next) => {
const config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8'));
const node = config.nodes.find((node) => (node.index === req.session.selectedNode.index));
if (node && node.settings) {
node.settings = req.body;
node.settings = req.body.settings;
}
try {
fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8');
const selectedNode = common.findNode(req.session.selectedNode.index);
if (selectedNode && selectedNode.settings) {
selectedNode.settings = req.body;
selectedNode.settings = req.body.settings;
common.replaceNode(req, selectedNode);
}
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Node Settings Updated', data: maskPasswords(config) });
res.status(201).json({ message: 'Node Settings Updated Successfully' });
let responseNode = JSON.parse(JSON.stringify(common.selectedNode));
responseNode = removeAuthSecureData(responseNode);
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Node Settings Updated', data: responseNode });
res.status(201).json(responseNode);
} catch (errRes) {
const errMsg = 'Update Node Settings Error';
const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode);

@ -56,7 +56,7 @@ export class NodeSettingsComponent implements OnInit, OnDestroy {
return currencyUnit;
});
this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[0])).subscribe((selNode) => {
this.selNode = selNode;
this.selNode = JSON.parse(JSON.stringify(selNode));
this.selectedThemeMode = this.themeModes.find((themeMode) => this.selNode.settings.themeMode === themeMode.id) || this.themeModes[0];
this.selectedThemeColor = this.selNode.settings.themeColor;
if (!this.selNode.settings.fiatConversion) {

@ -249,14 +249,16 @@ export class RTLEffects implements OnDestroy {
mergeMap((action: { type: string, payload: Node }) => {
this.store.dispatch(openSpinner({ payload: UI_MESSAGES.UPDATE_NODE_SETTINGS }));
this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'updateNodeSettings', status: APICallStatusEnum.INITIATED } }));
delete action.payload.settings.currencyUnits;
return this.httpClient.post(API_END_POINTS.CONF_API + '/node', action.payload).
pipe(map((updatedNode: Node) => {
this.store.dispatch(updateRootAPICallStatus({ payload: { action: 'updateNodeSettings', status: APICallStatusEnum.COMPLETED } }));
this.store.dispatch(closeSpinner({ payload: UI_MESSAGES.UPDATE_NODE_SETTINGS }));
updatedNode.settings.currencyUnits = [...CURRENCY_UNITS, (updatedNode.settings?.currencyUnit ? updatedNode.settings?.currencyUnit : '')];
this.store.dispatch(updateSelectedNodeSettings({ payload: updatedNode }));
this.store.dispatch(setChildNodeSettingsLND({ payload: action.payload }));
this.store.dispatch(setChildNodeSettingsCLN({ payload: action.payload }));
this.store.dispatch(setChildNodeSettingsECL({ payload: action.payload }));
this.store.dispatch(setChildNodeSettingsLND({ payload: updatedNode }));
this.store.dispatch(setChildNodeSettingsCLN({ payload: updatedNode }));
this.store.dispatch(setChildNodeSettingsECL({ payload: updatedNode }));
return {
type: RTLActions.OPEN_SNACK_BAR,
payload: 'Node settings updated successfully!'
@ -519,12 +521,10 @@ export class RTLEffects implements OnDestroy {
initializeNode(node: Node, isInitialSetup: boolean) {
this.logger.info('Initializing node from RTL Effects.');
const landingPage = isInitialSetup ? '' : 'HOME';
// if (node.settings.fiatConversion && node.settings.currencyUnit) {
// selNode['currencyUnits'] = [...CURRENCY_UNITS, node.settings.currencyUnit];
// }
this.sessionService.removeItem('lndUnlocked');
this.sessionService.removeItem('clnUnlocked');
this.sessionService.removeItem('eclUnlocked');
node.settings.currencyUnits = [...CURRENCY_UNITS, (node.settings?.currencyUnit ? node.settings?.currencyUnit : '')];
this.store.dispatch(resetRootStore({ payload: node }));
this.store.dispatch(resetLNDStore({ payload: node }));
this.store.dispatch(resetCLNStore({ payload: node }));

Loading…
Cancel
Save