Taichi Masuyama vor 4 Jahren
Ursprung
Commit
8c7e51f6dc
1 geänderte Dateien mit 10 neuen und 4 gelöschten Zeilen
  1. 10 4
      packages/app/src/server/service/page.ts

+ 10 - 4
packages/app/src/server/service/page.ts

@@ -26,7 +26,7 @@ const debug = require('debug')('growi:services:page');
 
 
 const logger = loggerFactory('growi:services:page');
 const logger = loggerFactory('growi:services:page');
 const {
 const {
-  isCreatablePage, isTrashPage, collectAncestorPaths, isTopPage,
+  isCreatablePage, isTrashPage, isTopPage, omitDuplicatePathAreaFromPaths,
 } = pagePathUtils;
 } = pagePathUtils;
 
 
 const BULK_REINDEX_SIZE = 100;
 const BULK_REINDEX_SIZE = 100;
@@ -1846,7 +1846,7 @@ class PageService {
     }
     }
 
 
     // generate regexps
     // generate regexps
-    const regexps = await this._generateRegExpsByPageIds(normalizedIds);
+    const regexps = await this._generateRegExpsByPageIds(normalizedIds, true);
 
 
     // migrate recursively
     // migrate recursively
     try {
     try {
@@ -1943,7 +1943,7 @@ class PageService {
   /*
   /*
    * returns an array of js RegExp instance instead of RE2 instance for mongo filter
    * returns an array of js RegExp instance instead of RE2 instance for mongo filter
    */
    */
-  private async _generateRegExpsByPageIds(pageIds) {
+  private async _generateRegExpsByPageIds(pageIds, shouldOmitDuplicatePathArea: boolean) {
     const Page = mongoose.model('Page') as unknown as PageModel;
     const Page = mongoose.model('Page') as unknown as PageModel;
 
 
     let result;
     let result;
@@ -1956,7 +1956,13 @@ class PageService {
     }
     }
 
 
     const { pages } = result;
     const { pages } = result;
-    const regexps = pages.map(page => new RegExp(`^${escapeStringRegexp(page.path)}`));
+
+    let paths = pages.map(p => p.path);
+    if (shouldOmitDuplicatePathArea) {
+      paths = omitDuplicatePathAreaFromPaths(paths);
+    }
+
+    const regexps = paths.map(path => new RegExp(`^${escapeStringRegexp(path)}`));
 
 
     return regexps;
     return regexps;
   }
   }