ryoji-s 2 лет назад
Родитель
Сommit
41e2078361
1 измененных файлов с 7 добавлено и 10 удалено
  1. 7 10
      apps/app/src/server/routes/apiv3/pages.js

+ 7 - 10
apps/app/src/server/routes/apiv3/pages.js

@@ -241,7 +241,7 @@ module.exports = (crowi) => {
     return [];
   }
 
-  const processCanBeUserHomepageDeletion = async(canDeleteFunction, userHomepages, pagesCanBeDeleted) => {
+  const addDeletableUserHomepages = async(canDeleteFunction, userHomepages, pagesCanBeDeleted) => {
     const isUsersHomepageDeletionEnabled = configManager.getConfig('crowi', 'security:user-homepage-deletion:isEnabled');
     if (isUsersHomepageDeletionEnabled) {
       const User = mongoose.model('User');
@@ -928,7 +928,7 @@ module.exports = (crowi) => {
 
     // Since the decision to delete or not a user's homepage is an asynchronous process,
     // filtering is done here on the user homepages and other pages for performance optimization.
-    const { filteredPages, userHomepages } = pagesToDelete.reduce((result, page) => {
+    let { filteredPages, userHomepages } = pagesToDelete.reduce((result, page) => {
       if (isUsersHomepage(page.path)) {
         result.userHomepages.push(page);
       }
@@ -941,21 +941,18 @@ module.exports = (crowi) => {
 
     const pagesCanBeDeleted = [];
     const canDeleteCompletely = page => page.isEmpty || crowi.pageService.canDeleteCompletely(page.path, page.creator, req.user, isRecursively);
-    const canDelete = (page) => {
-      return page.isEmpty
-      || page.isUpdatable(pageIdToRevisionIdMap[page._id].toString())
-      || crowi.pageService.canDelete(page.path, page.creator, req.user, isRecursively);
-    };
+    const canDelete = page => page.isEmpty || crowi.pageService.canDelete(page.path, page.creator, req.user, isRecursively);
 
     if (isCompletely) {
       pagesCanBeDeleted.push(...crowi.pageService.filterPagesByCanDeleteCompletely(filteredPages, req.user, isRecursively));
     }
     else {
-      const pages = filteredPages.filter(page => page.isEmpty || page.isUpdatable(pageIdToRevisionIdMap[page._id].toString()));
-      pagesCanBeDeleted.push(...crowi.pageService.filterPagesByCanDelete(pages, req.user, isRecursively));
+      filteredPages = filteredPages.filter(page => page.isEmpty || page.isUpdatable(pageIdToRevisionIdMap[page._id].toString()));
+      userHomepages = userHomepages.filter(page => page.isEmpty || page.isUpdatable(pageIdToRevisionIdMap[page._id].toString()));
+      pagesCanBeDeleted.push(...crowi.pageService.filterPagesByCanDelete(filteredPages, req.user, isRecursively));
     }
 
-    await processCanBeUserHomepageDeletion(isCompletely ? canDeleteCompletely : canDelete, userHomepages, pagesCanBeDeleted);
+    await addDeletableUserHomepages(isCompletely ? canDeleteCompletely : canDelete, userHomepages, pagesCanBeDeleted);
 
     if (pagesCanBeDeleted.length === 0) {
       const msg = 'No pages can be deleted.';