Просмотр исходного кода

BugFix: config default configs

Yuki Takei 6 лет назад
Родитель
Сommit
083f54eb57
2 измененных файлов с 7 добавлено и 4 удалено
  1. 1 0
      CHANGES.md
  2. 6 4
      src/server/service/config-loader.js

+ 1 - 0
CHANGES.md

@@ -8,6 +8,7 @@
 * Improvement: Reactify admin pages
 * Fix: Use HTTP PlantUML URL in default
     * Introduced by 3.5.12
+* Fix: Config default values
 * Support: REPL with `console` npm scripts
 
 ## 3.5.16

+ 6 - 4
src/server/service/config-loader.js

@@ -259,10 +259,12 @@ class ConfigLoader {
     const configFromDB = await this.loadFromDB();
     const configFromEnvVars = this.loadFromEnvVars();
 
-    // merge defaults
-    let mergedConfigFromDB = Object.assign({ crowi: this.configModel.getDefaultCrowiConfigsObject() }, configFromDB);
-    mergedConfigFromDB = Object.assign({ markdown: this.configModel.getDefaultMarkdownConfigsObject() }, mergedConfigFromDB);
-    mergedConfigFromDB = Object.assign({ notification: this.configModel.getDefaultNotificationConfigsObject() }, mergedConfigFromDB);
+    // merge defaults per ns
+    const mergedConfigFromDB = {
+      crowi: Object.assign(this.configModel.getDefaultCrowiConfigsObject(), configFromDB.crowi),
+      markdown: Object.assign(this.configModel.getDefaultMarkdownConfigsObject(), configFromDB.markdown),
+      notification: Object.assign(this.configModel.getDefaultNotificationConfigsObject(), configFromDB.notification),
+    };
 
     // In getConfig API, only null is used as a value to indicate that a config is not set.
     // So, if a value loaded from the database is emtpy,