ryoji-s 2 лет назад
Родитель
Сommit
a94100689a
1 измененных файлов с 27 добавлено и 24 удалено
  1. 27 24
      apps/app/src/server/events/user.js

+ 27 - 24
apps/app/src/server/events/user.js

@@ -1,36 +1,39 @@
-const debug = require('debug')('growi:events:user');
+import loggerFactory from '~/utils/logger';
 
-const util = require('util');
-const events = require('events');
+const EventEmitter = require('events');
 
-function UserEvent(crowi) {
-  this.crowi = crowi;
+const logger = loggerFactory('growi:events:user');
 
-  events.EventEmitter.call(this);
-}
-util.inherits(UserEvent, events.EventEmitter);
-
-UserEvent.prototype.onActivated = async function(user) {
-  const Page = this.crowi.model('Page');
+class UserEvent extends EventEmitter {
 
-  const userHomePagePath = `/user/${user.username}`;
+  constructor(crowi) {
+    super();
+    this.crowi = crowi;
+  }
 
-  const page = await Page.findByPath(userHomePagePath, user);
+  async onActivated(user) {
+    const Page = this.crowi.model('Page');
+    const userHomePagePath = `/user/${user.username}`;
+    let page = await Page.findByPath(userHomePagePath, user);
 
-  if (page == null) {
-    const body = `# ${user.username}\nThis is ${user.username}'s page`;
+    if (page !== null && page.creator.toString() !== user._id.toString()) {
+      await this.crowi.pageService.deleteCompletelyUserHomePageAndSubpages(user, userHomePagePath);
+      page = null;
+    }
 
-    // create user page
-    try {
-      await this.crowi.pageService.create(userHomePagePath, body, user, {});
+    if (page == null) {
+      const body = `# ${user.username}\nThis is ${user.username}'s page`;
 
-      // page created
-      debug('User page created', page);
-    }
-    catch (err) {
-      debug('Failed to create user page', err);
+      try {
+        await this.crowi.pageService.create(userHomePagePath, body, user, {});
+        logger.debug('User page created', page);
+      }
+      catch (err) {
+        logger.error('Failed to create user page', err);
+      }
     }
   }
-};
+
+}
 
 module.exports = UserEvent;