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

Move solution to isAccessiblePageByViewer

arvid-e 2 месяцев назад
Родитель
Сommit
7eb1e5ee3e
2 измененных файлов с 9 добавлено и 29 удалено
  1. 9 0
      apps/app/src/server/models/obsolete-page.js
  2. 0 29
      apps/app/src/server/routes/apiv3/revisions.js

+ 9 - 0
apps/app/src/server/models/obsolete-page.js

@@ -4,6 +4,7 @@ import {
   pathUtils,
   pathUtils,
   templateChecker,
   templateChecker,
 } from '@growi/core/dist/utils';
 } from '@growi/core/dist/utils';
+import { isUserPage } from '@growi/core/dist/utils/page-path-utils';
 import { removeHeadingSlash } from '@growi/core/dist/utils/path-utils';
 import { removeHeadingSlash } from '@growi/core/dist/utils/path-utils';
 import { differenceInYears } from 'date-fns/differenceInYears';
 import { differenceInYears } from 'date-fns/differenceInYears';
 import escapeStringRegexp from 'escape-string-regexp';
 import escapeStringRegexp from 'escape-string-regexp';
@@ -342,6 +343,14 @@ export const getPageSchema = (crowi) => {
   pageSchema.statics.isAccessiblePageByViewer = async function (id, user) {
   pageSchema.statics.isAccessiblePageByViewer = async function (id, user) {
     const baseQuery = this.count({ _id: id });
     const baseQuery = this.count({ _id: id });
 
 
+    const disabledUserPages = configManager.getConfig(
+      'security:disableUserPages',
+    );
+
+    if (disabledUserPages && isUserPage(page.path)) {
+      return false;
+    }
+
     const userGroups =
     const userGroups =
       user != null
       user != null
         ? [
         ? [

+ 0 - 29
apps/app/src/server/routes/apiv3/revisions.js

@@ -166,17 +166,6 @@ module.exports = (crowi) => {
       try {
       try {
         const page = await Page.findOne({ _id: pageId });
         const page = await Page.findOne({ _id: pageId });
 
 
-        const disabledUserPages = crowi.configManager.getConfig(
-          'security:disableUserPages',
-        );
-
-        if (disabledUserPages && isUserPage(page.path)) {
-          return res.apiv3Err(
-            new ErrorV3('The user page is disabled.', 'forbidden-user-page'),
-            403,
-          );
-        }
-
         const appliedAt = await getAppliedAtForRevisionFilter();
         const appliedAt = await getAppliedAtForRevisionFilter();
 
 
         const queryOpts = {
         const queryOpts = {
@@ -280,24 +269,6 @@ module.exports = (crowi) => {
       }
       }
 
 
       try {
       try {
-        const page = await Page.findOne({ _id: pageId });
-        const disabledUserPages = crowi.configManager.getConfig(
-          'security:disableUserPages',
-        );
-
-        if (page == null) {
-          return res.apiv3Err(
-            new ErrorV3('Page not found', 'notfound-page'),
-            404,
-          );
-        }
-
-        if (disabledUserPages && isUserPage(page.path)) {
-          return res.apiv3Err(
-            new ErrorV3('The user page is disabled.', 'forbidden-user-page'),
-            403,
-          );
-        }
         const revision = await Revision.findById(revisionId).populate('author');
         const revision = await Revision.findById(revisionId).populate('author');
 
 
         if (revision.author != null && revision.author instanceof User) {
         if (revision.author != null && revision.author instanceof User) {