From 3b3d696e459fba0235ae7bdbcfa12f4e5a91203d Mon Sep 17 00:00:00 2001 From: Kazuki-Nakanishi Date: Thu, 9 Mar 2017 19:58:34 +0000 Subject: [PATCH] Add the node setting tlsConfigDisableLocalFiles for tls node. (#1190) * Add the node setting tlsConfigDisableLocalFiles for tls node. * Fix the bug that shows node setting when specified in settings.js and exportable is false. --- nodes/core/io/05-tls.js | 9 ++++++++- red/runtime/settings.js | 10 ++++++---- test/red/runtime/settings_spec.js | 4 +++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/nodes/core/io/05-tls.js b/nodes/core/io/05-tls.js index a0929d988..9e470d28b 100644 --- a/nodes/core/io/05-tls.js +++ b/nodes/core/io/05-tls.js @@ -48,7 +48,14 @@ module.exports = function(RED) { return; } } - RED.nodes.registerType("tls-config",TLSConfig); + RED.nodes.registerType("tls-config",TLSConfig,{ + settings: { + tlsConfigDisableLocalFiles: { + value: true, + exportable: false + } + } + }); TLSConfig.prototype.addTLSOptions = function(opts) { if (this.valid) { diff --git a/red/runtime/settings.js b/red/runtime/settings.js index ce0a14f97..cb7ae91bc 100644 --- a/red/runtime/settings.js +++ b/red/runtime/settings.js @@ -128,10 +128,12 @@ var persistentSettings = { for (var property in nodeTypeSettings) { if (nodeTypeSettings.hasOwnProperty(property)) { var setting = nodeTypeSettings[property]; - if (userSettings.hasOwnProperty(property)) { - safeSettings["nodeSettings"][property] = userSettings[property]; - } else if (setting.exportable) { - safeSettings["nodeSettings"][property] = setting.value; + if (setting.exportable) { + if (userSettings.hasOwnProperty(property)) { + safeSettings["nodeSettings"][property] = userSettings[property]; + } else { + safeSettings["nodeSettings"][property] = setting.value; + } } } } diff --git a/test/red/runtime/settings_spec.js b/test/red/runtime/settings_spec.js index 1dbb80d15..ec995155b 100644 --- a/test/red/runtime/settings_spec.js +++ b/test/red/runtime/settings_spec.js @@ -185,14 +185,16 @@ describe("red/settings", function() { var userSettings = { injectColor: "green", mqttColor: "yellow", - c: [1,2,3] + abColor: [1,2,3] } settings.init(userSettings); settings.registerNodeSettings("inject", {injectColor:{value:"red", exportable:true}} ); + settings.registerNodeSettings("ab", {abColor:{value:"red", exportable:false}} ); var safeSettings = {}; settings.exportNodeSettings(safeSettings); safeSettings["nodeSettings"].should.have.property("injectColor", "green"); safeSettings["nodeSettings"].should.not.have.property("mqttColor"); + safeSettings["nodeSettings"].should.not.have.property("abColor"); }); it('disables/enables node settings', function() {