|
|
@@ -1,23 +1,29 @@
|
|
|
import EventEmitter from 'events';
|
|
|
|
|
|
+import type { IUserHasId } from '@growi/core';
|
|
|
+
|
|
|
import loggerFactory from '~/utils/logger';
|
|
|
|
|
|
+import Crowi from '../crowi';
|
|
|
+
|
|
|
const logger = loggerFactory('growi:events:user');
|
|
|
|
|
|
class UserEvent extends EventEmitter {
|
|
|
|
|
|
- constructor(crowi) {
|
|
|
+ crowi: Crowi;
|
|
|
+
|
|
|
+ constructor(crowi: Crowi) {
|
|
|
super();
|
|
|
this.crowi = crowi;
|
|
|
}
|
|
|
|
|
|
- async onActivated(user) {
|
|
|
+ async onActivated(user: IUserHasId): Promise<void> {
|
|
|
const Page = this.crowi.model('Page');
|
|
|
const userHomePagePath = `/user/${user.username}`;
|
|
|
let page = await Page.findByPath(userHomePagePath, user);
|
|
|
|
|
|
if (page !== null && page.creator.toString() !== user._id.toString()) {
|
|
|
- await this.crowi.pageService.deleteCompletelyUserHomeBySystem(user, userHomePagePath);
|
|
|
+ await this.crowi.pageService?.deleteCompletelyUserHomeBySystem(user, userHomePagePath);
|
|
|
page = null;
|
|
|
}
|
|
|
|
|
|
@@ -25,7 +31,7 @@ class UserEvent extends EventEmitter {
|
|
|
const body = `# ${user.username}\nThis is ${user.username}'s page`;
|
|
|
|
|
|
try {
|
|
|
- await this.crowi.pageService.create(userHomePagePath, body, user, {});
|
|
|
+ await this.crowi.pageService?.create(userHomePagePath, body, user, {});
|
|
|
logger.debug('User page created', page);
|
|
|
}
|
|
|
catch (err) {
|
|
|
@@ -36,4 +42,4 @@ class UserEvent extends EventEmitter {
|
|
|
|
|
|
}
|
|
|
|
|
|
-module.exports = UserEvent;
|
|
|
+export default UserEvent;
|