Przeglądaj źródła

refactor: use new config API

Yuki Takei 7 lat temu
rodzic
commit
43b79cb565
2 zmienionych plików z 22 dodań i 13 usunięć
  1. 10 7
      src/server/crowi/express-init.js
  2. 12 6
      src/server/routes/admin.js

+ 10 - 7
src/server/crowi/express-init.js

@@ -21,10 +21,14 @@ module.exports = function(crowi, app) {
   const i18nMiddleware = require('i18next-express-middleware');
   const i18nUserSettingDetector = require('../util/i18nUserSettingDetector');
   const env = crowi.node_env;
-  const config = crowi.getConfig();
   const middleware = require('../util/middlewares');
 
+  // Old type config API
+  const config = crowi.getConfig();
   const Config = crowi.model('Config');
+  // New type config API
+  const configManager = crowi.configManager;
+
   const User = crowi.model('User');
   const lngDetector = new i18nMiddleware.LanguageDetector();
   lngDetector.addDetector(i18nUserSettingDetector);
@@ -65,7 +69,7 @@ module.exports = function(crowi, app) {
     req.csrfToken = null;
 
     res.locals.req = req;
-    res.locals.baseUrl = crowi.configManager.getSiteUrl();
+    res.locals.baseUrl = configManager.getSiteUrl();
     res.locals.config = config;
     res.locals.env = env;
     res.locals.now = now;
@@ -114,11 +118,10 @@ module.exports = function(crowi, app) {
       return next();
     }
 
-    if (config.crowi['security:basicName'] && config.crowi['security:basicSecret']) {
-      return basicAuth(
-        config.crowi['security:basicName'],
-        config.crowi['security:basicSecret'],
-      )(req, res, next);
+    const basicName = configManager.getConfig('crowi', 'security:basicName');
+    const basicSecret = configManager.getConfig('crowi', 'security:basicSecret');
+    if (basicName && basicSecret) {
+      return basicAuth(basicName, basicSecret)(req, res, next);
     }
 
     next();

+ 12 - 6
src/server/routes/admin.js

@@ -906,7 +906,11 @@ module.exports = function(crowi, app) {
     }
   };
 
-  actions.api.securitySetting = function(req, res) {
+  actions.api.securitySetting = async function(req, res) {
+    if (!req.form.isValid) {
+      return res.json({ status: false, message: req.form.errors.join('\n') });
+    }
+
     const form = req.form.settingForm;
     const config = crowi.getConfig();
     const isPublicWikiOnly = Config.isPublicWikiOnly(config);
@@ -924,12 +928,14 @@ module.exports = function(crowi, app) {
       }
     }
 
-    if (req.form.isValid) {
-      debug('form content', form);
-      return saveSetting(req, res, form);
+    try {
+      await crowi.configManager.updateConfigsInTheSameNamespace('crowi', form);
+      return res.json({ status: true });
+    }
+    catch (err) {
+      logger.error(err);
+      return res.json({ status: false });
     }
-
-    return res.json({ status: false, message: req.form.errors.join('\n') });
   };
 
   actions.api.securityPassportLdapSetting = function(req, res) {