소스 검색

Merge pull request #5363 from weseek/fix/disable-move-option-for-user-page

fix: not allow user page to be moved
Yuki Takei 4 년 전
부모
커밋
573d9a2472
2개의 변경된 파일5개의 추가작업 그리고 7개의 파일을 삭제
  1. 1 3
      packages/app/src/server/routes/apiv3/page.js
  2. 4 4
      packages/app/src/server/service/page.ts

+ 1 - 3
packages/app/src/server/routes/apiv3/page.js

@@ -10,7 +10,7 @@ const express = require('express');
 const { body, query } = require('express-validator');
 const { body, query } = require('express-validator');
 
 
 const router = express.Router();
 const router = express.Router();
-const { convertToNewAffiliationPath, isTopPage } = pagePathUtils;
+const { convertToNewAffiliationPath } = pagePathUtils;
 const ErrorV3 = require('../../models/vo/error-apiv3');
 const ErrorV3 = require('../../models/vo/error-apiv3');
 
 
 
 
@@ -391,14 +391,12 @@ module.exports = (crowi) => {
 
 
       const isBookmarked = await Bookmark.findByPageIdAndUserId(pageId, user._id);
       const isBookmarked = await Bookmark.findByPageIdAndUserId(pageId, user._id);
       const isLiked = page.isLiked(user);
       const isLiked = page.isLiked(user);
-      const isMovable = !isTopPage(page.path);
       const isAbleToDeleteCompletely = pageService.canDeleteCompletely(page.creator?._id, user);
       const isAbleToDeleteCompletely = pageService.canDeleteCompletely(page.creator?._id, user);
 
 
       const subscription = await Subscription.findByUserIdAndTargetId(user._id, pageId);
       const subscription = await Subscription.findByUserIdAndTargetId(user._id, pageId);
 
 
       const responseBody = {
       const responseBody = {
         ...responseBodyForGuest,
         ...responseBodyForGuest,
-        isMovable,
         isAbleToDeleteCompletely,
         isAbleToDeleteCompletely,
         isBookmarked,
         isBookmarked,
         isLiked,
         isLiked,

+ 4 - 4
packages/app/src/server/service/page.ts

@@ -26,7 +26,7 @@ const debug = require('debug')('growi:services:page');
 
 
 const logger = loggerFactory('growi:services:page');
 const logger = loggerFactory('growi:services:page');
 const {
 const {
-  isCreatablePage, isTrashPage, isTopPage, isDeletablePage, omitDuplicateAreaPathFromPaths, omitDuplicateAreaPageFromPages,
+  isCreatablePage, isTrashPage, isTopPage, isDeletablePage, omitDuplicateAreaPathFromPaths, omitDuplicateAreaPageFromPages, isUserPage, isUserNamePage,
 } = pagePathUtils;
 } = pagePathUtils;
 
 
 const BULK_REINDEX_SIZE = 100;
 const BULK_REINDEX_SIZE = 100;
@@ -1689,17 +1689,17 @@ class PageService {
   }
   }
 
 
   constructBasicPageInfo(page: IPage, isGuestUser?: boolean): IPageInfo | IPageInfoForEntity {
   constructBasicPageInfo(page: IPage, isGuestUser?: boolean): IPageInfo | IPageInfoForEntity {
+    const isMovable = isGuestUser ? false : !isTopPage(page.path) && !isUserPage(page.path) && !isUserNamePage(page.path);
+
     if (page.isEmpty) {
     if (page.isEmpty) {
       return {
       return {
         isEmpty: true,
         isEmpty: true,
-        isMovable: true,
+        isMovable,
         isDeletable: false,
         isDeletable: false,
         isAbleToDeleteCompletely: false,
         isAbleToDeleteCompletely: false,
       };
       };
     }
     }
 
 
-    const isMovable = isGuestUser ? false : !isTopPage(page.path);
-
     const likers = page.liker.slice(0, 15) as Ref<IUserHasId>[];
     const likers = page.liker.slice(0, 15) as Ref<IUserHasId>[];
     const seenUsers = page.seenUsers.slice(0, 15) as Ref<IUserHasId>[];
     const seenUsers = page.seenUsers.slice(0, 15) as Ref<IUserHasId>[];