Просмотр исходного кода

Include AnyoneWithTheLinkPage in your search

Shun Miyazawa 3 лет назад
Родитель
Сommit
9bc5a2eb96

+ 4 - 2
packages/app/src/server/models/page.ts

@@ -553,11 +553,13 @@ schema.statics.replaceTargetWithPage = async function(exPage, pageToReplaceWith?
 /*
  * Find pages by ID and viewer.
  */
-schema.statics.findByIdsAndViewer = async function(pageIds: string[], user, userGroups?, includeEmpty?: boolean): Promise<PageDocument[]> {
+schema.statics.findByIdsAndViewer = async function(
+    pageIds: string[], user, userGroups?, includeEmpty?: boolean, includeAnyoneWithTheLink?: boolean,
+): Promise<PageDocument[]> {
   const baseQuery = this.find({ _id: { $in: pageIds } });
   const queryBuilder = new PageQueryBuilder(baseQuery, includeEmpty);
 
-  await queryBuilder.addViewerCondition(user, userGroups);
+  await queryBuilder.addViewerCondition(user, userGroups, includeAnyoneWithTheLink);
 
   return queryBuilder.query.exec();
 };

+ 2 - 1
packages/app/src/server/routes/apiv3/pages.js

@@ -842,8 +842,9 @@ module.exports = (crowi) => {
     }
 
     let pagesToDelete;
+    const includeAnyoneWithTheLink = pageIds.length === 1;
     try {
-      pagesToDelete = await Page.findByIdsAndViewer(pageIds, req.user, null, true);
+      pagesToDelete = await Page.findByIdsAndViewer(pageIds, req.user, null, true, includeAnyoneWithTheLink);
     }
     catch (err) {
       logger.error('Failed to find pages to delete.', err);