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

update delete completely user home by system

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

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

@@ -17,7 +17,7 @@ class UserEvent extends EventEmitter {
     let page = await Page.findByPath(userHomePagePath, user);
 
     if (page !== null && page.creator.toString() !== user._id.toString()) {
-      await this.crowi.pageService.deleteCompletelyUserHomePageAndSubpages(user, userHomePagePath);
+      await this.crowi.pageService.deleteCompletelyUserHomeBySystem(user, userHomePagePath);
       page = null;
     }
 

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

@@ -801,7 +801,7 @@ module.exports = (crowi) => {
       activityEvent.emit('update', res.locals.activity._id, { action: SupportedAction.ACTION_ADMIN_USERS_REMOVE });
 
       if (isUsersHomePageDeletionEnabled) {
-        crowi.pageService.deleteCompletelyUserHomePageAndSubpages(req.user, userHomePagePath);
+        crowi.pageService.deleteCompletelyUserHomeBySystem(req.user, userHomePagePath);
       }
 
       return res.apiv3({ user: serializedUser });

+ 15 - 1
apps/app/src/server/service/page.ts

@@ -1962,9 +1962,23 @@ class PageService {
     }
   }
 
-  async deleteCompletelyUserHomePageAndSubpages(user, userHomePagePath, options = {}): Promise<void> {
+  // TODO: Delete user arg.
+  // see: https://redmine.weseek.co.jp/issues/124326
+  /**
+   * Delete a user's homepage and its subpages completely by the system.
+   *
+   * @description This function is intended to be used exclusively for forcibly deleting the user homepage by the system.
+   * It should only be called from within the appropriate context and with caution as it performs a system-level operation.
+   *
+   * @param {object} user - The user object.
+   * @param {string} userHomePagePath - The path of the user's homepage.
+   * @returns {Promise<void>} - A Promise that resolves when the deletion is complete.
+   * @throws {Error} - If an error occurs during the deletion process.
+   */
+  async deleteCompletelyUserHomeBySystem(user: object, userHomePagePath: string): Promise<void> {
     const Page = this.crowi.model('Page');
     const userHomePage = await Page.findByPath(userHomePagePath, user);
+    const options = {};
 
     if (userHomePage == null) {
       logger.error('user home page is not found.');