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

Replace with newly created findPageAndMetaDataByViewer

Shun Miyazawa 3 месяцев назад
Родитель
Сommit
2eaddad78c

+ 6 - 3
apps/app/src/pages/[[...path]]/page-data-props.ts

@@ -15,11 +15,12 @@ import assert from 'assert';
 import type { HydratedDocument, model } from 'mongoose';
 
 import type { CrowiRequest } from '~/interfaces/crowi-request';
-import type { PageDocument, PageModel } from '~/server/models/page';
+import type { PageModel } from '~/server/models/page';
 import type {
   IPageRedirect,
   PageRedirectModel,
 } from '~/server/models/page-redirect';
+import { findPageAndMetaDataByViewer } from '~/server/service/page/find-page-and-meta-data-by-viewer';
 
 import type { CommonEachProps } from '../common-props';
 import type {
@@ -131,7 +132,7 @@ export async function getPageDataForInitial(
   let pathFromUrl = `/${pathFromQuery.join('/')}`;
   pathFromUrl = pathFromUrl === '//' ? '/' : pathFromUrl;
 
-  const { pageService, configManager } = crowi;
+  const { pageService, pageGrantService, configManager } = crowi;
 
   const pageId = _isPermalink(pathFromUrl)
     ? removeHeadingSlash(pathFromUrl)
@@ -154,7 +155,9 @@ export async function getPageDataForInitial(
   }
 
   // Get full page data
-  const pageWithMeta = await pageService.findPageAndMetaDataByViewer(
+  const pageWithMeta = await findPageAndMetaDataByViewer(
+    pageService,
+    pageGrantService,
     pageId,
     resolvedPagePath,
     user,

+ 5 - 2
apps/app/src/pages/share/[[...path]]/page-data-props.ts

@@ -7,6 +7,7 @@ import type { CrowiRequest } from '~/interfaces/crowi-request';
 import type { IShareLink } from '~/interfaces/share-link';
 import type { PageModel } from '~/server/models/page';
 import type { ShareLinkModel } from '~/server/models/share-link';
+import { findPageAndMetaDataByViewer } from '~/server/service/page/find-page-and-meta-data-by-viewer';
 
 import type { ShareLinkPageStatesProps } from './types';
 
@@ -34,7 +35,7 @@ export const getPageDataForInitial = async (
 ): Promise<GetServerSidePropsResult<ShareLinkPageStatesProps>> => {
   const req = context.req as CrowiRequest;
   const { crowi, params } = req;
-  const { pageService, configManager } = crowi;
+  const { pageService, pageGrantService, configManager } = crowi;
 
   if (mongooseModel == null) {
     mongooseModel = (await import('mongoose')).model;
@@ -56,7 +57,9 @@ export const getPageDataForInitial = async (
   }
 
   const pageId = getIdStringForRef(shareLink.relatedPage);
-  const pageWithMeta = await pageService.findPageAndMetaDataByViewer(
+  const pageWithMeta = await findPageAndMetaDataByViewer(
+    pageService,
+    pageGrantService,
     pageId,
     null,
     undefined, // no user for share link

+ 15 - 4
apps/app/src/server/routes/apiv3/page/index.ts

@@ -39,6 +39,7 @@ import ShareLink from '~/server/models/share-link';
 import Subscription from '~/server/models/subscription';
 import { configManager } from '~/server/service/config-manager';
 import { exportService } from '~/server/service/export';
+import { findPageAndMetaDataByViewer } from '~/server/service/page/find-page-and-meta-data-by-viewer';
 import type { IPageGrantService } from '~/server/service/page-grant';
 import { preNotifyService } from '~/server/service/pre-notify';
 import { normalizeLatestRevisionIfBroken } from '~/server/service/revision/normalize-latest-revision-if-broken';
@@ -94,7 +95,7 @@ module.exports = (crowi: Crowi) => {
 
   const globalNotificationService = crowi.getGlobalNotificationService();
   const Page = mongoose.model<IPage, PageModel>('Page');
-  const { pageService } = crowi;
+  const { pageService, pageGrantService } = crowi;
 
   const activityEvent = crowi.event('activity');
 
@@ -262,7 +263,9 @@ module.exports = (crowi: Crowi) => {
             return res.apiv3Err('ShareLink is not found', 404);
           }
           return respondWithSinglePage(
-            await pageService.findPageAndMetaDataByViewer(
+            await findPageAndMetaDataByViewer(
+              pageService,
+              pageGrantService,
               getIdStringForRef(shareLink.relatedPage),
               path,
               user,
@@ -290,7 +293,13 @@ module.exports = (crowi: Crowi) => {
         }
 
         return respondWithSinglePage(
-          await pageService.findPageAndMetaDataByViewer(pageId, path, user),
+          await findPageAndMetaDataByViewer(
+            pageService,
+            pageGrantService,
+            pageId,
+            path,
+            user,
+          ),
         );
       } catch (err) {
         logger.error('get-page-failed', err);
@@ -583,7 +592,9 @@ module.exports = (crowi: Crowi) => {
       const { pageId } = req.query;
 
       try {
-        const { meta } = await pageService.findPageAndMetaDataByViewer(
+        const { meta } = await findPageAndMetaDataByViewer(
+          pageService,
+          pageGrantService,
           pageId,
           null,
           user,