From 38bc2068aa7999ceb8bf00b1e35125f6b9c58157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Fournier?= Date: Wed, 14 Aug 2024 11:55:08 +0200 Subject: [PATCH] fix: messed up on merge-conflicts --- 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 347f59fed697..0f9e2448cf3e 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 38e340527e8f..eda4e46f18ba 100644 --- a/src/lib/services/user-service.ts +++ b/src/lib/services/user-service.ts @@ -255,20 +255,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, @@ -278,20 +268,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, ); @@ -308,7 +304,7 @@ class UserService { ); } - return { createdUser, inviteLink, emailSent }; + return emailSent; } async updateUser(