ryoji-s 2 лет назад
Родитель
Сommit
7b9d590f6b

+ 1 - 1
apps/app/src/server/events/user.js

@@ -13,7 +13,7 @@ util.inherits(UserEvent, events.EventEmitter);
 UserEvent.prototype.onActivated = async function(user) {
   const Page = this.crowi.model('Page');
 
-  const userHomePagePath = Page.getUserHomePagePath(user);
+  const userHomePagePath = `/user/${user.username}`;
 
   const page = await Page.findByPath(userHomePagePath, user);
 

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

@@ -287,10 +287,6 @@ export const getPageSchema = (crowi) => {
       });
   };
 
-  pageSchema.statics.getUserHomePagePath = function(user) {
-    return `/user/${user.username}`;
-  };
-
   pageSchema.statics.getDeletedPageName = function(path) {
     if (path.match('/')) {
       // eslint-disable-next-line no-param-reassign

+ 7 - 14
apps/app/src/server/routes/apiv3/users.js

@@ -6,7 +6,7 @@ import loggerFactory from '~/utils/logger';
 
 import { generateAddActivityMiddleware } from '../../middlewares/add-activity';
 import { apiV3FormValidator } from '../../middlewares/apiv3-form-validator';
-
+import { configManager } from '../../service/config-manager';
 
 const logger = loggerFactory('growi:routes:apiv3:users');
 
@@ -351,7 +351,7 @@ module.exports = (crowi) => {
       return res.apiv3Err(new ErrorV3('find-user-is-not-found'));
     }
 
-    const limit = parseInt(req.query.limit) || await crowi.configManager.getConfig('crowi', 'customize:showPageLimitationM') || 30;
+    const limit = parseInt(req.query.limit) || await configManager.getConfig('crowi', 'customize:showPageLimitationM') || 30;
     const page = req.query.page;
     const offset = (page - 1) * limit;
     const queryOptions = { offset, limit };
@@ -784,13 +784,13 @@ module.exports = (crowi) => {
    */
   router.delete('/:id/remove', loginRequiredStrictly, adminRequired, certifyUserOperationOtherThenYourOwn, addActivity, async(req, res) => {
     const { id } = req.params;
-    const isUsersHomePageDeletionEnabled = crowi.configManager.getConfig('crowi', 'security:isUsersHomePageDeletionEnabled');
+    const isUsersHomePageDeletionEnabled = configManager.getConfig('crowi', 'security:isUsersHomePageDeletionEnabled');
 
     try {
       const user = await User.findById(id);
-      // !! DO NOT MOVE getUserHomePagePath FROM THIS POSITION !! -- 05.31.2023
+      // !! DO NOT MOVE userHomePagePath FROM THIS POSITION !! -- 05.31.2023
       // catch username before delete user because username will be change to deleted_at_*
-      const userHomePagePath = Page.getUserHomePagePath(user);
+      const userHomePagePath = `/user/${user.username}`;
 
       await UserGroupRelation.remove({ relatedUser: user });
       await user.statusDelete();
@@ -801,15 +801,8 @@ module.exports = (crowi) => {
       activityEvent.emit('update', res.locals.activity._id, { action: SupportedAction.ACTION_ADMIN_USERS_REMOVE });
 
       if (isUsersHomePageDeletionEnabled) {
-        const userHomePage = await Page.findByPath(userHomePagePath, user);
-
-        if (userHomePage == null) {
-          logger.error('user home page is not found.');
-          throw new ErrorV3('user collection deleted but user home page is not found');
-        }
-
-        await crowi.pageService.deleteUserHomePageAndSubPages(
-          userHomePage,
+        crowi.pageService.deleteUserHomePageAndSubPages(
+          userHomePagePath,
           req.user,
           {
             ip: req.ip,

+ 10 - 2
apps/app/src/server/service/page.ts

@@ -1962,8 +1962,16 @@ class PageService {
     }
   }
 
-  async deleteUserHomePageAndSubPages(userHomePage, user, activityParameters): Promise<void> {
-    await this.deleteCompletely(userHomePage, user, {}, true, false, activityParameters);
+  async deleteUserHomePageAndSubPages(userHomePagePath, user, activityParameters): Promise<void> {
+    const Page = this.crowi.model('Page');
+    const userHomePage = await Page.findByPath(userHomePagePath, user);
+
+    if (userHomePage == null) {
+      logger.error('user home page is not found.');
+      throw new Error('user collection deleted but user home page is not found');
+    }
+
+    this.deleteCompletely(userHomePage, user, {}, true, false, activityParameters);
   }
 
   // use the same process in both v4 and v5