From cac621c450561c23a65373318f1c097153c4635a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Fournier?= Date: Wed, 14 Aug 2024 12:00:57 +0200 Subject: [PATCH] fix: messed up on merge-conflicts (#7873) When fixing conflicts accidentally I've undone my changes --- src/lib/routes/admin-api/user-admin.ts | 34 ++++++++++++++++---------- src/lib/services/user-service.ts | 32 +++++++++++------------- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/src/lib/routes/admin-api/user-admin.ts b/src/lib/routes/admin-api/user-admin.ts index 347f59fed6..0f9e2448cf 100644 --- a/src/lib/routes/admin-api/user-admin.ts +++ b/src/lib/routes/admin-api/user-admin.ts @@ -520,22 +520,30 @@ export default class UserAdminController extends Controller { ? Number(rootRole) : (rootRole as RoleName); - const { createdUser, inviteLink, emailSent } = - await this.userService.createUserWithEmail( - { - username, - email, - name, - password, - rootRole: normalizedRootRole, - }, - sendEmail, - req.audit, - ); + const createdUser = await this.userService.createUser( + { + username, + email, + name, + password, + rootRole: normalizedRootRole, + }, + req.audit, + ); + + const inviteLink = await this.userService.newUserInviteLink( + createdUser, + req.audit, + ); + + // send email defaults to true + const emailSent = (sendEmail !== undefined ? sendEmail : true) + ? await this.userService.sendWelcomeEmail(createdUser, inviteLink) + : false; const responseData: CreateUserResponseSchema = { ...serializeDates(createdUser), - inviteLink: inviteLink, + inviteLink, emailSent, rootRole: normalizedRootRole, }; diff --git a/src/lib/services/user-service.ts b/src/lib/services/user-service.ts index 52c954b601..a1c5bab9a7 100644 --- a/src/lib/services/user-service.ts +++ b/src/lib/services/user-service.ts @@ -259,20 +259,10 @@ class UserService { return userCreated; } - async createUserWithEmail( - { username, email, name, password, rootRole }: ICreateUser, - sendEmail = true, + async newUserInviteLink( + user: IUserWithRootRole, auditUser: IAuditUser = SYSTEM_USER_AUDIT, - ): Promise<{ - createdUser: IUserWithRootRole; - inviteLink: string; - emailSent: boolean; - }> { - const createdUser = await this.createUser( - { username, email, name, password, rootRole }, - auditUser, - ); - + ): Promise { const passwordAuthSettings = await this.settingService.getWithDefault( simpleAuthSettingsKey, @@ -282,20 +272,26 @@ class UserService { let inviteLink = this.unleashUrl; if (!passwordAuthSettings.disabled) { const inviteUrl = await this.resetTokenService.createNewUserUrl( - createdUser.id, + user.id, auditUser.username, ); inviteLink = inviteUrl.toString(); } + return inviteLink; + } + async sendWelcomeEmail( + user: IUserWithRootRole, + inviteLink: string, + ): Promise { let emailSent = false; const emailConfigured = this.emailService.configured(); - if (emailConfigured && sendEmail && createdUser.email) { + if (emailConfigured && user.email) { try { await this.emailService.sendGettingStartedMail( - createdUser.name || '', - createdUser.email, + user.name || '', + user.email, this.unleashUrl, inviteLink, ); @@ -312,7 +308,7 @@ class UserService { ); } - return { createdUser, inviteLink, emailSent }; + return emailSent; } async updateUser(