soumaeda 2 лет назад
Родитель
Сommit
cd67a9a663
1 измененных файлов с 7 добавлено и 4 удалено
  1. 7 4
      apps/app/src/server/routes/apiv3/page.js

+ 7 - 4
apps/app/src/server/routes/apiv3/page.js

@@ -1,8 +1,11 @@
+import path from 'path';
+
 import {
 import {
   AllSubscriptionStatusType, SubscriptionStatusType,
   AllSubscriptionStatusType, SubscriptionStatusType,
 } from '@growi/core';
 } from '@growi/core';
 import { ErrorV3 } from '@growi/core/dist/models';
 import { ErrorV3 } from '@growi/core/dist/models';
 import { convertToNewAffiliationPath } from '@growi/core/dist/utils/page-path-utils';
 import { convertToNewAffiliationPath } from '@growi/core/dist/utils/page-path-utils';
+import sanitize from 'sanitize-filename';
 
 
 import { SupportedAction, SupportedTargetModel } from '~/interfaces/activity';
 import { SupportedAction, SupportedTargetModel } from '~/interfaces/activity';
 import { generateAddActivityMiddleware } from '~/server/middlewares/add-activity';
 import { generateAddActivityMiddleware } from '~/server/middlewares/add-activity';
@@ -12,6 +15,7 @@ import Subscription from '~/server/models/subscription';
 import UserGroup from '~/server/models/user-group';
 import UserGroup from '~/server/models/user-group';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
+
 const logger = loggerFactory('growi:routes:apiv3:page'); // eslint-disable-line no-unused-vars
 const logger = loggerFactory('growi:routes:apiv3:page'); // eslint-disable-line no-unused-vars
 
 
 const express = require('express');
 const express = require('express');
@@ -163,7 +167,6 @@ module.exports = (crowi) => {
   const loginRequired = require('../../middlewares/login-required')(crowi, true);
   const loginRequired = require('../../middlewares/login-required')(crowi, true);
   const loginRequiredStrictly = require('../../middlewares/login-required')(crowi);
   const loginRequiredStrictly = require('../../middlewares/login-required')(crowi);
   const certifySharedPage = require('../../middlewares/certify-shared-page')(crowi);
   const certifySharedPage = require('../../middlewares/certify-shared-page')(crowi);
-  const path = require('path');
   const addActivity = generateAddActivityMiddleware(crowi);
   const addActivity = generateAddActivityMiddleware(crowi);
 
 
   const configManager = crowi.configManager;
   const configManager = crowi.configManager;
@@ -619,9 +622,9 @@ module.exports = (crowi) => {
 
 
     // replace forbidden characters to '_'
     // replace forbidden characters to '_'
     // refer to https://kb.acronis.com/node/56475?ckattempt=1
     // refer to https://kb.acronis.com/node/56475?ckattempt=1
-    let fileName = path.basename(pagePath)
-      .replace(/[\\/:;"*?<>,」ˆ|¥]/g, '_')
-      .replace(/\.$/, '_');
+    const sanitize = require('sanitize-filename');
+    let fileName = sanitize(path.basename(pagePath), { replacement: '_' });
+
 
 
     // replace root page name to '_top'
     // replace root page name to '_top'
     if (!fileName) {
     if (!fileName) {