should-use-v4-process.ts 817 B

1234567891011121314151617181920
  1. import type { IPage } from '@growi/core';
  2. import { isTopPage } from '@growi/core/dist/utils/page-path-utils';
  3. import mongoose from 'mongoose';
  4. import { PageModel } from '~/server/models/page';
  5. import { configManager } from '~/server/service/config-manager';
  6. export const shouldUseV4Process = (page: IPage): boolean => {
  7. const Page = mongoose.model<IPage, PageModel>('Page');
  8. const isTrashPage = page.status === Page.STATUS_DELETED;
  9. const isPageMigrated = page.parent != null;
  10. const isV5Compatible = configManager.getConfig('crowi', 'app:isV5Compatible');
  11. const isRoot = isTopPage(page.path);
  12. const isPageRestricted = page.grant === Page.GRANT_RESTRICTED;
  13. const shouldUseV4Process = !isRoot && (!isV5Compatible || !isPageMigrated || isTrashPage || isPageRestricted);
  14. return shouldUseV4Process;
  15. };