Yuki Takei 6 лет назад
Родитель
Сommit
b2795e1681

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

@@ -24,10 +24,6 @@ module.exports = function(crowi, app) {
 
   const env = crowi.node_env;
 
-  // New type config API
-  const configManager = crowi.configManager;
-  const getConfig = configManager.getConfig;
-
   const User = crowi.model('User');
   const lngDetector = new i18nMiddleware.LanguageDetector();
   lngDetector.addDetector(i18nUserSettingDetector);
@@ -56,13 +52,12 @@ module.exports = function(crowi, app) {
 
   app.use((req, res, next) => {
     const now = new Date();
-    const tzoffset = -(getConfig('crowi', 'app:timezone') || 9) * 60;
     // for datez
 
     const Page = crowi.model('Page');
     const User = crowi.model('User');
     const Config = crowi.model('Config');
-    app.set('tzoffset', tzoffset);
+    app.set('tzoffset', crowi.appService.getTzoffset());
 
     req.csrfToken = null;
 
@@ -70,7 +65,6 @@ module.exports = function(crowi, app) {
     res.locals.baseUrl = crowi.appService.getSiteUrl();
     res.locals.env = env;
     res.locals.now = now;
-    res.locals.tzoffset = tzoffset;
     res.locals.consts = {
       pageGrants: Page.getGrantLabels(),
       userStatus: User.getUserStatusLabels(),

+ 6 - 6
src/server/routes/apiv3/user-group-relation.js

@@ -6,11 +6,6 @@ const express = require('express');
 
 const router = express.Router();
 
-const {
-  loginRequired,
-  adminRequired,
-} = require('../../util/middlewares');
-
 /**
  * @swagger
  *  tags:
@@ -20,6 +15,11 @@ const {
 module.exports = (crowi) => {
   const { ErrorV3, UserGroup, UserGroupRelation } = crowi.models;
 
+  const {
+    loginRequired,
+    adminRequired,
+  } = require('../../util/middlewares')(crowi);
+
   /**
    * @swagger
    *  paths:
@@ -40,7 +40,7 @@ module.exports = (crowi) => {
    *                      type: object
    *                      description: contains arrays user objects related
    */
-  router.get('/', loginRequired(crowi), adminRequired(), async(req, res) => {
+  router.get('/', loginRequired(), adminRequired, async(req, res) => {
     // TODO: filter with querystring? or body
     try {
       const page = parseInt(req.query.page) || 1;

+ 10 - 10
src/server/routes/apiv3/user-group.js

@@ -8,12 +8,6 @@ const router = express.Router();
 
 const { body, param, query } = require('express-validator/check');
 
-const {
-  csrfVerify,
-  loginRequired,
-  adminRequired,
-} = require('../../util/middlewares');
-
 const validator = {};
 
 /**
@@ -26,6 +20,12 @@ module.exports = (crowi) => {
   const { ErrorV3, UserGroup, UserGroupRelation } = crowi.models;
   const { ApiV3FormValidator } = crowi.middlewares;
 
+  const {
+    loginRequired,
+    adminRequired,
+    csrfVerify: csrf,
+  } = require('../../util/middlewares')(crowi);
+
   /**
    * @swagger
    *
@@ -47,7 +47,7 @@ module.exports = (crowi) => {
    *                      type: object
    *                      description: a result of `UserGroup.find`
    */
-  router.get('/', loginRequired(crowi), adminRequired(), async(req, res) => {
+  router.get('/', loginRequired(), adminRequired, async(req, res) => {
     // TODO: filter with querystring
     try {
       const userGroups = await UserGroup.find();
@@ -94,7 +94,7 @@ module.exports = (crowi) => {
    *                      type: object
    *                      description: A result of `UserGroup.createGroupByName`
    */
-  router.post('/', loginRequired(crowi), adminRequired(), csrfVerify(crowi), validator.create, ApiV3FormValidator, async(req, res) => {
+  router.post('/', loginRequired(), adminRequired, csrf, validator.create, ApiV3FormValidator, async(req, res) => {
     const { name } = req.body;
 
     try {
@@ -153,7 +153,7 @@ module.exports = (crowi) => {
    *                      type: object
    *                      description: A result of `UserGroup.removeCompletelyById`
    */
-  router.delete('/:id', loginRequired(crowi), adminRequired(), csrfVerify(crowi), validator.delete, ApiV3FormValidator, async(req, res) => {
+  router.delete('/:id', loginRequired(), adminRequired, csrf, validator.delete, ApiV3FormValidator, async(req, res) => {
     const { id: deleteGroupId } = req.params;
     const { actionName, transferToUserGroupId } = req.query;
 
@@ -206,7 +206,7 @@ module.exports = (crowi) => {
    *                        type: object
    *                      description: user objects
    */
-  router.get('/:id/users', loginRequired(crowi), adminRequired(), async(req, res) => {
+  router.get('/:id/users', loginRequired(), adminRequired, async(req, res) => {
     const { id } = req.params;
 
     try {

+ 1 - 1
src/server/routes/index.js

@@ -4,7 +4,7 @@ const autoReap = require('multer-autoreap');
 autoReap.options.reapOnError = true; // continue reaping the file even if an error occurs
 
 module.exports = function(crowi, app) {
-  const middlewares = require('../util/middlewares')(crowi, app);
+  const middlewares = require('../util/middlewares')(crowi);
   const uploads = multer({ dest: `${crowi.tmpDir}uploads` });
   const form = require('../form');
   const page = require('./page')(crowi, app);

+ 4 - 0
src/server/service/app.js

@@ -35,6 +35,10 @@ class AppService {
   }
   /* eslint-enable no-else-return */
 
+  getTzoffset() {
+    return -(this.configManager.getConfig('crowi', 'app:timezone') || 9) * 60;
+  }
+
   /**
    * Execute only once for installing application
    */

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

@@ -7,7 +7,7 @@ const pathUtils = require('growi-commons').pathUtils;
 const md5 = require('md5');
 const entities = require('entities');
 
-module.exports = (crowi, app) => {
+module.exports = (crowi) => {
   const { configManager, appService } = crowi;
 
   const middlewares = {};
@@ -50,7 +50,7 @@ module.exports = (crowi, app) => {
 
   middlewares.swigFunctions = function() {
     return function(req, res, next) {
-      require('../util/swigFunctions')(crowi, app, req, res.locals);
+      require('../util/swigFunctions')(crowi, req, res.locals);
       next();
     };
   };
@@ -119,7 +119,7 @@ module.exports = (crowi, app) => {
       swig.setFilter('datetz', (input, format) => {
         // timezone
         const swigFilters = require('swig-templates/lib/filters');
-        return swigFilters.date(input, format, app.get('tzoffset'));
+        return swigFilters.date(input, format, crowi.appService.getTzoffset());
       });
 
       swig.setFilter('nl2br', (string) => {

+ 1 - 1
src/server/util/swigFunctions.js

@@ -1,4 +1,4 @@
-module.exports = function(crowi, app, req, locals) {
+module.exports = function(crowi, req, locals) {
   const debug = require('debug')('growi:lib:swigFunctions');
   const stringWidth = require('string-width');
   const Page = crowi.model('Page');