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

abolish tagWhiteList attrWhiteList

mizozobu 6 лет назад
Родитель
Сommit
392c042f6d
2 измененных файлов с 7 добавлено и 56 удалено
  1. 0 47
      src/server/models/config.js
  2. 7 9
      src/server/routes/admin.js

+ 0 - 47
src/server/models/config.js

@@ -6,7 +6,6 @@
 module.exports = function(crowi) {
 module.exports = function(crowi) {
   const mongoose = require('mongoose');
   const mongoose = require('mongoose');
   const debug = require('debug')('growi:models:config');
   const debug = require('debug')('growi:models:config');
-  const recommendedWhitelist = require('@commons/service/xss/recommended-whitelist');
 
 
   const SECURITY_RESTRICT_GUEST_MODE_DENY = 'Deny';
   const SECURITY_RESTRICT_GUEST_MODE_DENY = 'Deny';
   const SECURITY_RESTRICT_GUEST_MODE_READONLY = 'Readonly';
   const SECURITY_RESTRICT_GUEST_MODE_READONLY = 'Readonly';
@@ -342,52 +341,6 @@ module.exports = function(crowi) {
     return getValueForMarkdownNS(config, key);
     return getValueForMarkdownNS(config, key);
   };
   };
 
 
-  configSchema.statics.tagWhiteList = function(config) {
-    const key = 'markdown:xss:tagWhiteList';
-
-    if (this.isEnabledXssPrevention(config)) {
-      switch (this.xssOption(config)) {
-        case 1: // ignore all: use default option
-          return [];
-
-        case 2: // recommended
-          return recommendedWhitelist.tags;
-
-        case 3: // custom white list
-          return config.markdown[key];
-
-        default:
-          return [];
-      }
-    }
-    else {
-      return [];
-    }
-  };
-
-  configSchema.statics.attrWhiteList = function(config) {
-    const key = 'markdown:xss:attrWhiteList';
-
-    if (this.isEnabledXssPrevention(config)) {
-      switch (this.xssOption(config)) {
-        case 1: // ignore all: use default option
-          return [];
-
-        case 2: // recommended
-          return recommendedWhitelist.attrs;
-
-        case 3: // custom white list
-          return config.markdown[key];
-
-        default:
-          return [];
-      }
-    }
-    else {
-      return [];
-    }
-  };
-
   configSchema.statics.getLocalconfig = function() { // CONF.RF: これも別のメソッドにする
   configSchema.statics.getLocalconfig = function() { // CONF.RF: これも別のメソッドにする
     const env = process.env;
     const env = process.env;
 
 

+ 7 - 9
src/server/routes/admin.js

@@ -114,7 +114,7 @@ module.exports = function(crowi, app) {
   // app.get('/admin/markdown'                  , admin.markdown.index);
   // app.get('/admin/markdown'                  , admin.markdown.index);
   actions.markdown = {};
   actions.markdown = {};
   actions.markdown.index = function(req, res) {
   actions.markdown.index = function(req, res) {
-    const markdownSetting = configManager.getConfigByPrefix('crowi', 'markdown:');
+    const markdownSetting = configManager.getConfigByPrefix('markdown', 'markdown:');
 
 
     return res.render('admin/markdown', {
     return res.render('admin/markdown', {
       markdownSetting,
       markdownSetting,
@@ -161,7 +161,7 @@ module.exports = function(crowi, app) {
   };
   };
 
 
   // app.post('/admin/markdown/xss-setting' , admin.markdown.xssSetting);
   // app.post('/admin/markdown/xss-setting' , admin.markdown.xssSetting);
-  actions.markdown.xssSetting = function(req, res) {
+  actions.markdown.xssSetting = async function(req, res) {
     const xssSetting = req.form.markdownSetting;
     const xssSetting = req.form.markdownSetting;
 
 
     xssSetting['markdown:xss:tagWhiteList'] = stringToArray(xssSetting['markdown:xss:tagWhiteList']);
     xssSetting['markdown:xss:tagWhiteList'] = stringToArray(xssSetting['markdown:xss:tagWhiteList']);
@@ -169,16 +169,14 @@ module.exports = function(crowi, app) {
 
 
     req.session.markdownSetting = xssSetting;
     req.session.markdownSetting = xssSetting;
     if (req.form.isValid) {
     if (req.form.isValid) {
-      Config.updateNamespaceByArray('markdown', xssSetting, (err, config) => {
-        Config.updateConfigCache('markdown', config);
-        req.session.xssSetting = null;
-        req.flash('successMessage', ['Successfully updated!']);
-        return res.redirect('/admin/markdown');
-      });
+      await configManager.updateConfigsInTheSameNamespace('markdown', xssSetting);
+      req.session.xssSetting = null;
+      req.flash('successMessage', ['Successfully updated!']);
+      res.redirect('/admin/markdown');
     }
     }
     else {
     else {
       req.flash('errorMessage', req.form.errors);
       req.flash('errorMessage', req.form.errors);
-      return res.redirect('/admin/markdown');
+      res.redirect('/admin/markdown');
     }
     }
   };
   };