Browse Source

Merge pull request #1057 from weseek/imprv/abolish-old-config-api-acl-markdown-slack

Imprv/abolish old config api acl markdown slack
Yuki Takei 6 years ago
parent
commit
0578253ea5

+ 3 - 4
src/server/crowi/index.js

@@ -82,9 +82,11 @@ Crowi.prototype.init = async function() {
 
 
   // customizeService depends on AppService and XssService
   // customizeService depends on AppService and XssService
   // passportService depends on appService
   // passportService depends on appService
+  // slack depends on setUpSlacklNotification
   await Promise.all([
   await Promise.all([
     this.setUpApp(),
     this.setUpApp(),
     this.setUpXss(),
     this.setUpXss(),
+    this.setUpSlacklNotification(),
   ]);
   ]);
 
 
   await Promise.all([
   await Promise.all([
@@ -95,7 +97,6 @@ Crowi.prototype.init = async function() {
     this.setupSlack(),
     this.setupSlack(),
     this.setupCsrf(),
     this.setupCsrf(),
     this.setUpGlobalNotification(),
     this.setUpGlobalNotification(),
-    this.setUpSlacklNotification(),
     this.setUpFileUpload(),
     this.setUpFileUpload(),
     this.setUpAcl(),
     this.setUpAcl(),
     this.setUpCustomize(),
     this.setUpCustomize(),
@@ -327,11 +328,9 @@ Crowi.prototype.setupMailer = function() {
 
 
 Crowi.prototype.setupSlack = function() {
 Crowi.prototype.setupSlack = function() {
   const self = this;
   const self = this;
-  const config = this.getConfig();
-  const Config = this.model('Config');
 
 
   return new Promise(((resolve, reject) => {
   return new Promise(((resolve, reject) => {
-    if (Config.hasSlackConfig(config)) {
+    if (this.slackNotificationService.hasSlackConfig()) {
       self.slack = require('../util/slack')(self);
       self.slack = require('../util/slack')(self);
     }
     }
 
 

+ 2 - 145
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';
@@ -14,8 +13,6 @@ module.exports = function(crowi) {
   const SECURITY_REGISTRATION_MODE_RESTRICTED = 'Resricted';
   const SECURITY_REGISTRATION_MODE_RESTRICTED = 'Resricted';
   const SECURITY_REGISTRATION_MODE_CLOSED = 'Closed';
   const SECURITY_REGISTRATION_MODE_CLOSED = 'Closed';
 
 
-  let Config;
-
   const configSchema = new mongoose.Schema({
   const configSchema = new mongoose.Schema({
     ns: { type: String, required: true, index: true },
     ns: { type: String, required: true, index: true },
     key: { type: String, required: true, index: true },
     key: { type: String, required: true, index: true },
@@ -144,16 +141,6 @@ module.exports = function(crowi) {
     };
     };
   }
   }
 
 
-  function getValueForMarkdownNS(config, key) {
-    crowi.configManager.getConfig('markdown', key);
-    // // return the default value if undefined
-    // if (undefined === config.markdown || undefined === config.markdown[key]) {
-    //   return getDefaultMarkdownConfigs()[key];
-    // }
-
-    // return config.markdown[key];
-  }
-
   /**
   /**
    * It is deprecated to use this for anything other than AppService#isDBInitialized.
    * It is deprecated to use this for anything other than AppService#isDBInitialized.
    */
    */
@@ -262,9 +249,6 @@ module.exports = function(crowi) {
     );
     );
   };
   };
 
 
-  configSchema.statics.getConfig = function(callback) {
-  };
-
   // configSchema.statics.loadAllConfig = function(callback) {
   // configSchema.statics.loadAllConfig = function(callback) {
   //   const Config = this;
   //   const Config = this;
 
 
@@ -292,133 +276,6 @@ module.exports = function(crowi) {
   //     });
   //     });
   // };
   // };
 
 
-  configSchema.statics.isGuestAllowedToRead = function(config) {
-    // return true if puclic wiki mode
-    if (crowi.aclService.getIsPublicWikiOnly()) {
-      return true;
-    }
-
-    const restrictGuestMode = crowi.configManager.getConfig('crowi', 'security:restrictGuestMode');
-    // return false if undefined
-    if (undefined === config.crowi || undefined === restrictGuestMode) {
-      return false;
-    }
-
-    return SECURITY_RESTRICT_GUEST_MODE_READONLY === restrictGuestMode;
-  };
-
-  configSchema.statics.isEnabledLinebreaks = function(config) {
-    const key = 'markdown:isEnabledLinebreaks';
-    return getValueForMarkdownNS(config, key);
-  };
-
-  configSchema.statics.isEnabledLinebreaksInComments = function(config) {
-    const key = 'markdown:isEnabledLinebreaksInComments';
-    return getValueForMarkdownNS(config, key);
-  };
-  configSchema.statics.isPublicWikiOnly = function(config) {
-    const publicWikiOnly = process.env.PUBLIC_WIKI_ONLY;
-    if (publicWikiOnly === 'true' || publicWikiOnly === 1) {
-      return true;
-    }
-    return false;
-  };
-
-  configSchema.statics.pageBreakSeparator = function(config) {
-    const key = 'markdown:presentation:pageBreakSeparator';
-    return getValueForMarkdownNS(config, key);
-  };
-
-  configSchema.statics.pageBreakCustomSeparator = function(config) {
-    const key = 'markdown:presentation:pageBreakCustomSeparator';
-    return getValueForMarkdownNS(config, key);
-  };
-
-  configSchema.statics.isEnabledXssPrevention = function(config) {
-    const key = 'markdown:xss:isEnabledPrevention';
-    return getValueForMarkdownNS(config, key);
-  };
-
-  configSchema.statics.xssOption = function(config) {
-    const key = 'markdown:xss:option';
-    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.hasSlackConfig = function(config) {
-    return Config.hasSlackToken(config) || Config.hasSlackIwhUrl(config);
-  };
-
-  /**
-   * for Slack Incoming Webhooks
-   */
-  configSchema.statics.hasSlackIwhUrl = function(config) {
-    if (!config.notification) {
-      return false;
-    }
-    return (!!config.notification['slack:incomingWebhookUrl']);
-  };
-
-  configSchema.statics.isIncomingWebhookPrioritized = function(config) {
-    if (!config.notification) {
-      return false;
-    }
-    return (!!config.notification['slack:isIncomingWebhookPrioritized']);
-  };
-
-  configSchema.statics.hasSlackToken = function(config) {
-    if (!config.notification) {
-      return false;
-    }
-
-    return (!!config.notification['slack:token']);
-  };
-
   configSchema.statics.getLocalconfig = function() { // CONF.RF: これも別のメソッドにする
   configSchema.statics.getLocalconfig = function() { // CONF.RF: これも別のメソッドにする
     const env = process.env;
     const env = process.env;
 
 
@@ -441,7 +298,7 @@ module.exports = function(crowi) {
       attrWhiteList: crowi.xssService.getAttrWhiteList(),
       attrWhiteList: crowi.xssService.getAttrWhiteList(),
       highlightJsStyleBorder: crowi.configManager.getConfig('crowi', 'customize:highlightJsStyleBorder'),
       highlightJsStyleBorder: crowi.configManager.getConfig('crowi', 'customize:highlightJsStyleBorder'),
       isSavedStatesOfTabChanges: crowi.configManager.getConfig('crowi', 'customize:isSavedStatesOfTabChanges'),
       isSavedStatesOfTabChanges: crowi.configManager.getConfig('crowi', 'customize:isSavedStatesOfTabChanges'),
-      hasSlackConfig: crowi.configManager.getConfig('crowi', 'customize:behavior'),
+      hasSlackConfig: crowi.slackNotificationService.hasSlackConfig(),
       env: {
       env: {
         PLANTUML_URI: env.PLANTUML_URI || null,
         PLANTUML_URI: env.PLANTUML_URI || null,
         BLOCKDIAG_URI: env.BLOCKDIAG_URI || null,
         BLOCKDIAG_URI: env.BLOCKDIAG_URI || null,
@@ -483,7 +340,7 @@ module.exports = function(crowi) {
   }
   }
   */
   */
 
 
-  Config = mongoose.model('Config', configSchema);
+  const Config = mongoose.model('Config', configSchema);
   Config.SECURITY_REGISTRATION_MODE_OPEN = SECURITY_REGISTRATION_MODE_OPEN;
   Config.SECURITY_REGISTRATION_MODE_OPEN = SECURITY_REGISTRATION_MODE_OPEN;
   Config.SECURITY_REGISTRATION_MODE_RESTRICTED = SECURITY_REGISTRATION_MODE_RESTRICTED;
   Config.SECURITY_REGISTRATION_MODE_RESTRICTED = SECURITY_REGISTRATION_MODE_RESTRICTED;
   Config.SECURITY_REGISTRATION_MODE_CLOSED = SECURITY_REGISTRATION_MODE_CLOSED;
   Config.SECURITY_REGISTRATION_MODE_CLOSED = SECURITY_REGISTRATION_MODE_CLOSED;

+ 34 - 51
src/server/routes/admin.js

@@ -14,7 +14,7 @@ module.exports = function(crowi, app) {
   const GlobalNotificationMailSetting = models.GlobalNotificationMailSetting;
   const GlobalNotificationMailSetting = models.GlobalNotificationMailSetting;
   const GlobalNotificationSlackSetting = models.GlobalNotificationSlackSetting; // eslint-disable-line no-unused-vars
   const GlobalNotificationSlackSetting = models.GlobalNotificationSlackSetting; // eslint-disable-line no-unused-vars
 
 
-  const { configManager } = crowi;
+  const { configManager, aclService, slackNotificationService } = crowi;
 
 
   const recommendedWhitelist = require('@commons/service/xss/recommended-whitelist');
   const recommendedWhitelist = require('@commons/service/xss/recommended-whitelist');
   const PluginUtils = require('../plugins/plugin-utils');
   const PluginUtils = require('../plugins/plugin-utils');
@@ -106,7 +106,7 @@ module.exports = function(crowi, app) {
   actions.security = {};
   actions.security = {};
   actions.security.index = function(req, res) {
   actions.security.index = function(req, res) {
     const settingForm = configManager.getConfigByPrefix('crowi', 'security:');
     const settingForm = configManager.getConfigByPrefix('crowi', 'security:');
-    const isAclEnabled = crowi.aclService.getIsPublicWikiOnly();
+    const isAclEnabled = aclService.getIsPublicWikiOnly();
 
 
     return res.render('admin/security', { settingForm, isAclEnabled });
     return res.render('admin/security', { settingForm, isAclEnabled });
   };
   };
@@ -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,
@@ -123,66 +123,54 @@ module.exports = function(crowi, app) {
   };
   };
 
 
   // app.post('/admin/markdown/lineBreaksSetting' , admin.markdown.lineBreaksSetting);
   // app.post('/admin/markdown/lineBreaksSetting' , admin.markdown.lineBreaksSetting);
-  actions.markdown.lineBreaksSetting = function(req, res) {
+  actions.markdown.lineBreaksSetting = async function(req, res) {
     const markdownSetting = req.form.markdownSetting;
     const markdownSetting = req.form.markdownSetting;
 
 
-    req.session.markdownSetting = markdownSetting;
     if (req.form.isValid) {
     if (req.form.isValid) {
-      Config.updateNamespaceByArray('markdown', markdownSetting, (err, config) => {
-        Config.updateConfigCache('markdown', config);
-        req.session.markdownSetting = null;
-        req.flash('successMessage', ['Successfully updated!']);
-        return res.redirect('/admin/markdown');
-      });
+      await configManager.updateConfigsInTheSameNamespace('markdown', markdownSetting);
+      req.flash('successMessage', ['Successfully updated!']);
     }
     }
     else {
     else {
       req.flash('errorMessage', req.form.errors);
       req.flash('errorMessage', req.form.errors);
-      return res.redirect('/admin/markdown');
     }
     }
+
+    return res.redirect('/admin/markdown');
   };
   };
 
 
   // app.post('/admin/markdown/presentationSetting' , admin.markdown.presentationSetting);
   // app.post('/admin/markdown/presentationSetting' , admin.markdown.presentationSetting);
-  actions.markdown.presentationSetting = function(req, res) {
-    const presentationSetting = req.form.markdownSetting;
+  actions.markdown.presentationSetting = async function(req, res) {
+    const markdownSetting = req.form.markdownSetting;
 
 
-    req.session.markdownSetting = presentationSetting;
     if (req.form.isValid) {
     if (req.form.isValid) {
-      Config.updateNamespaceByArray('markdown', presentationSetting, (err, config) => {
-        Config.updateConfigCache('markdown', config);
-        req.session.markdownSetting = null;
-        req.flash('successMessage', ['Successfully updated!']);
-        return res.redirect('/admin/markdown');
-      });
+      await configManager.updateConfigsInTheSameNamespace('markdown', markdownSetting);
+      req.flash('successMessage', ['Successfully updated!']);
     }
     }
     else {
     else {
       req.flash('errorMessage', req.form.errors);
       req.flash('errorMessage', req.form.errors);
-      return res.redirect('/admin/markdown');
     }
     }
+
+    return res.redirect('/admin/markdown');
   };
   };
 
 
   // 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:attrWhiteList'] = stringToArray(xssSetting['markdown:xss:attrWhiteList']);
+    xssSetting['markdown:xss:tagWhiteList'] = csvToArray(xssSetting['markdown:xss:tagWhiteList']);
+    xssSetting['markdown:xss:attrWhiteList'] = csvToArray(xssSetting['markdown:xss:attrWhiteList']);
 
 
-    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.flash('successMessage', ['Successfully updated!']);
     }
     }
     else {
     else {
       req.flash('errorMessage', req.form.errors);
       req.flash('errorMessage', req.form.errors);
-      return res.redirect('/admin/markdown');
     }
     }
+
+    return res.redirect('/admin/markdown');
   };
   };
 
 
-  const stringToArray = (string) => {
+  const csvToArray = (string) => {
     const array = string.split(',');
     const array = string.split(',');
     return array.map((item) => { return item.trim() });
     return array.map((item) => { return item.trim() });
   };
   };
@@ -216,13 +204,12 @@ module.exports = function(crowi, app) {
   // app.get('/admin/notification'               , admin.notification.index);
   // app.get('/admin/notification'               , admin.notification.index);
   actions.notification = {};
   actions.notification = {};
   actions.notification.index = async(req, res) => {
   actions.notification.index = async(req, res) => {
-    const config = crowi.getConfig();
     const UpdatePost = crowi.model('UpdatePost');
     const UpdatePost = crowi.model('UpdatePost');
     let slackSetting = configManager.getConfigByPrefix('notification', 'slack:');
     let slackSetting = configManager.getConfigByPrefix('notification', 'slack:');
-    const hasSlackIwhUrl = Config.hasSlackIwhUrl(config);
-    const hasSlackToken = Config.hasSlackToken(config);
+    const hasSlackIwhUrl = !!configManager.getConfig('notification', 'slack:incomingWebhookUrl');
+    const hasSlackToken = !!configManager.getConfig('notification', 'slack:token');
 
 
-    if (!Config.hasSlackIwhUrl(req.config)) {
+    if (!hasSlackIwhUrl) {
       slackSetting['slack:incomingWebhookUrl'] = '';
       slackSetting['slack:incomingWebhookUrl'] = '';
     }
     }
 
 
@@ -270,7 +257,7 @@ module.exports = function(crowi, app) {
   actions.notification.slackAuth = function(req, res) {
   actions.notification.slackAuth = function(req, res) {
     const code = req.query.code;
     const code = req.query.code;
 
 
-    if (!code || !Config.hasSlackConfig(req.config)) {
+    if (!code || !slackNotificationService.hasSlackConfig()) {
       return res.redirect('/admin/notification');
       return res.redirect('/admin/notification');
     }
     }
 
 
@@ -298,18 +285,16 @@ module.exports = function(crowi, app) {
   };
   };
 
 
   // app.post('/admin/notification/slackIwhSetting' , admin.notification.slackIwhSetting);
   // app.post('/admin/notification/slackIwhSetting' , admin.notification.slackIwhSetting);
-  actions.notification.slackIwhSetting = function(req, res) {
+  actions.notification.slackIwhSetting = async function(req, res) {
     const slackIwhSetting = req.form.slackIwhSetting;
     const slackIwhSetting = req.form.slackIwhSetting;
 
 
     if (req.form.isValid) {
     if (req.form.isValid) {
-      Config.updateNamespaceByArray('notification', slackIwhSetting, (err, config) => {
-        Config.updateConfigCache('notification', config);
-        req.flash('successMessage', ['Successfully Updated!']);
+      await configManager.updateConfigsInTheSameNamespace('notification', slackIwhSetting);
+      req.flash('successMessage', ['Successfully Updated!']);
 
 
-        // Re-setup
-        crowi.setupSlack().then(() => {
-          return res.redirect('/admin/notification#slack-incoming-webhooks');
-        });
+      // Re-setup
+      crowi.setupSlack().then(() => {
+        return res.redirect('/admin/notification#slack-incoming-webhooks');
       });
       });
     }
     }
     else {
     else {
@@ -650,7 +635,7 @@ module.exports = function(crowi, app) {
   actions.userGroup = {};
   actions.userGroup = {};
   actions.userGroup.index = function(req, res) {
   actions.userGroup.index = function(req, res) {
     const page = parseInt(req.query.page) || 1;
     const page = parseInt(req.query.page) || 1;
-    const isAclEnabled = !Config.isPublicWikiOnly(req.config);
+    const isAclEnabled = aclService.getIsPublicWikiOnly();
     const renderVar = {
     const renderVar = {
       userGroups: [],
       userGroups: [],
       userGroupRelations: new Map(),
       userGroupRelations: new Map(),
@@ -914,9 +899,7 @@ module.exports = function(crowi, app) {
     }
     }
 
 
     const form = req.form.settingForm;
     const form = req.form.settingForm;
-    const config = crowi.getConfig();
-    const isPublicWikiOnly = Config.isPublicWikiOnly(config);
-    if (isPublicWikiOnly) {
+    if (aclService.getIsPublicWikiOnly()) {
       const basicName = form['security:basicName'];
       const basicName = form['security:basicName'];
       const basicSecret = form['security:basicSecret'];
       const basicSecret = form['security:basicSecret'];
       if (basicName !== '' || basicSecret !== '') {
       if (basicName !== '' || basicSecret !== '') {

+ 2 - 3
src/server/routes/page.js

@@ -8,7 +8,6 @@ module.exports = function(crowi, app) {
 
 
   const Page = crowi.model('Page');
   const Page = crowi.model('Page');
   const User = crowi.model('User');
   const User = crowi.model('User');
-  const Config = crowi.model('Config');
   const config = crowi.getConfig();
   const config = crowi.getConfig();
   const Bookmark = crowi.model('Bookmark');
   const Bookmark = crowi.model('Bookmark');
   const PageTagRelation = crowi.model('PageTagRelation');
   const PageTagRelation = crowi.model('PageTagRelation');
@@ -17,7 +16,7 @@ module.exports = function(crowi, app) {
   const ApiResponse = require('../util/apiResponse');
   const ApiResponse = require('../util/apiResponse');
   const getToday = require('../util/getToday');
   const getToday = require('../util/getToday');
 
 
-  const configManager = crowi.configManager;
+  const { configManager, slackNotificationService } = crowi;
   const interceptorManager = crowi.getInterceptorManager();
   const interceptorManager = crowi.getInterceptorManager();
   const globalNotificationService = crowi.getGlobalNotificationService();
   const globalNotificationService = crowi.getGlobalNotificationService();
 
 
@@ -99,7 +98,7 @@ module.exports = function(crowi, app) {
         logger.error('Error occured in updating slack channels: ', err);
         logger.error('Error occured in updating slack channels: ', err);
       });
       });
 
 
-    if (Config.hasSlackConfig(config)) {
+    if (slackNotificationService.hasSlackConfig(config)) {
       const promises = slackChannels.split(',').map((chan) => {
       const promises = slackChannels.split(',').map((chan) => {
         return crowi.slack.postPage(page, user, chan, updateOrCreate, previousRevision);
         return crowi.slack.postPage(page, user, chan, updateOrCreate, previousRevision);
       });
       });

+ 0 - 22
src/server/service/notification.js

@@ -1,22 +0,0 @@
-
-
-function Notification(crowi) {
-  this.crowi = crowi;
-  this.config = crowi.getConfig();
-}
-
-Notification.prototype.hasSlackConfig = function() {
-  if (!this.config.notification.slack) {
-    return false;
-  }
-
-  // var config = ;
-};
-
-Notification.prototype.noitfyByEmail = function() {
-};
-
-Notification.prototype.noitfyByChat = function() {
-};
-
-module.exports = Notification;

+ 1 - 1
src/server/service/slack-notification.js

@@ -12,7 +12,7 @@ class SlackNotificationService {
     let hasSlackToken = false;
     let hasSlackToken = false;
     let hasSlackIwhUrl = false;
     let hasSlackIwhUrl = false;
 
 
-    if (this.configObject.notification) {
+    if (this.configManager.configObject.notification) {
       hasSlackToken = !!this.configManager.getConfig('notification', 'slack:token');
       hasSlackToken = !!this.configManager.getConfig('notification', 'slack:token');
       hasSlackIwhUrl = !!this.configManager.getConfig('notification', 'slack:incomingWebhookUrl');
       hasSlackIwhUrl = !!this.configManager.getConfig('notification', 'slack:incomingWebhookUrl');
     }
     }

+ 1 - 3
src/server/util/middlewares.js

@@ -208,15 +208,13 @@ module.exports = (crowi, app) => {
    * @param {boolean} isStrictly whethere strictly restricted (default true)
    * @param {boolean} isStrictly whethere strictly restricted (default true)
    */
    */
   middlewares.loginRequired = function(isStrictly = true) {
   middlewares.loginRequired = function(isStrictly = true) {
-    const isGuestAllowedToRead = crowi.aclService.getIsGuestAllowedToRead();
-
     return function(req, res, next) {
     return function(req, res, next) {
       const User = crowi.model('User');
       const User = crowi.model('User');
 
 
       // when the route is not strictly restricted
       // when the route is not strictly restricted
       if (!isStrictly) {
       if (!isStrictly) {
         // when allowed to read
         // when allowed to read
-        if (isGuestAllowedToRead) {
+        if (crowi.aclService.getIsGuestAllowedToRead()) {
           return next();
           return next();
         }
         }
       }
       }

+ 6 - 5
src/server/util/slack.js

@@ -11,6 +11,7 @@ module.exports = function(crowi) {
   const config = crowi.getConfig();
   const config = crowi.getConfig();
   const Config = crowi.model('Config');
   const Config = crowi.model('Config');
   const Slack = require('slack-node');
   const Slack = require('slack-node');
+  const { configManager } = crowi;
 
 
   const slack = {};
   const slack = {};
 
 
@@ -205,23 +206,23 @@ module.exports = function(crowi) {
 
 
   const slackPost = (messageObj) => {
   const slackPost = (messageObj) => {
     // when incoming Webhooks is prioritized
     // when incoming Webhooks is prioritized
-    if (Config.isIncomingWebhookPrioritized(config)) {
-      if (Config.hasSlackIwhUrl(config)) {
+    if (configManager.getConfig('notification', 'slack:isIncomingWebhookPrioritized')) {
+      if (configManager.getConfig('notification', 'slack:incomingWebhookUrl')) {
         debug('posting message with IncomingWebhook');
         debug('posting message with IncomingWebhook');
         return postWithIwh(messageObj);
         return postWithIwh(messageObj);
       }
       }
-      if (Config.hasSlackToken(config)) {
+      if (configManager.getConfig('notification', 'slack:token')) {
         debug('posting message with Web API');
         debug('posting message with Web API');
         return postWithWebApi(messageObj);
         return postWithWebApi(messageObj);
       }
       }
     }
     }
     // else
     // else
     else {
     else {
-      if (Config.hasSlackToken(config)) {
+      if (configManager.getConfig('notification', 'slack:token')) {
         debug('posting message with Web API');
         debug('posting message with Web API');
         return postWithWebApi(messageObj);
         return postWithWebApi(messageObj);
       }
       }
-      if (Config.hasSlackIwhUrl(config)) {
+      if (configManager.getConfig('notification', 'slack:incomingWebhookUrl')) {
         debug('posting message with IncomingWebhook');
         debug('posting message with IncomingWebhook');
         return postWithIwh(messageObj);
         return postWithIwh(messageObj);
       }
       }

+ 0 - 21
src/server/util/swigFunctions.js

@@ -2,7 +2,6 @@ module.exports = function(crowi, app, req, locals) {
   const debug = require('debug')('growi:lib:swigFunctions');
   const debug = require('debug')('growi:lib:swigFunctions');
   const stringWidth = require('string-width');
   const stringWidth = require('string-width');
   const Page = crowi.model('Page');
   const Page = crowi.model('Page');
-  const Config = crowi.model('Config');
   const User = crowi.model('User');
   const User = crowi.model('User');
   const {
   const {
     configManager,
     configManager,
@@ -155,26 +154,6 @@ module.exports = function(crowi, app, req, locals) {
     return process.env.HACKMD_URI != null;
     return process.env.HACKMD_URI != null;
   };
   };
 
 
-  locals.isEnabledLinebreaks = function() {
-    const config = crowi.getConfig();
-    return Config.isEnabledLinebreaks(config);
-  };
-
-  locals.isEnabledLinebreaksInComments = function() {
-    const config = crowi.getConfig();
-    return Config.isEnabledLinebreaksInComments(config);
-  };
-
-  locals.pageBreakSeparator = function() {
-    const config = crowi.getConfig();
-    return Config.pageBreakSeparator(config);
-  };
-
-  locals.pageBreakCustomSeparator = function() {
-    const config = crowi.getConfig();
-    return Config.pageBreakCustomSeparator(config);
-  };
-
   locals.customCss = function() {
   locals.customCss = function() {
     const customizeService = crowi.customizeService;
     const customizeService = crowi.customizeService;
     return customizeService.getCustomCss();
     return customizeService.getCustomCss();

+ 2 - 2
src/server/views/page_presentation.html

@@ -41,8 +41,8 @@
   <body>
   <body>
     <div class="reveal">
     <div class="reveal">
       <div class="slides">
       <div class="slides">
-        {% set pageBreakSeparator = pageBreakSeparator()|default(1) %}
-        {% set pageBreakCustomSeparator = pageBreakCustomSeparator()|default('') %}
+        {% set pageBreakSeparator = getConfig('markdown', 'markdown:presentation:pageBreakSeparator') | default(1) %}
+        {% set pageBreakCustomSeparator = getConfig('markdown', 'markdown:presentation:pageBreakCustomSeparator') | default('') %}
 
 
         {% if 3 === pageBreakSeparator %}
         {% if 3 === pageBreakSeparator %}
           {% set dataSeparator = pageBreakCustomSeparator %}
           {% set dataSeparator = pageBreakCustomSeparator %}