From 01c4bbad005d6d6e43f483e002b04aa244a72fd9 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 21 Jul 2022 13:18:05 +0800 Subject: [PATCH] delete pending user if failed to send confirmation email --- packages/api/src/services/create_user.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/api/src/services/create_user.ts b/packages/api/src/services/create_user.ts index cc7c06a15..0dbe854cc 100644 --- a/packages/api/src/services/create_user.ts +++ b/packages/api/src/services/create_user.ts @@ -8,7 +8,7 @@ import { validateUsername } from '../utils/usernamePolicy' import { Invite } from '../entity/groups/invite' import { GroupMembership } from '../entity/groups/group_membership' import { AppDataSource } from '../server' -import { getRepository } from '../entity/utils' +import { getRepository, setClaims } from '../entity/utils' import { generateVerificationToken } from '../utils/auth' import { env } from '../env' import { sendEmail } from '../utils/sendEmail' @@ -107,6 +107,11 @@ export const createUser = async (input: { }) if (!sent) { + // delete user if email failed to send + await AppDataSource.transaction(async (e) => { + await setClaims(e, user.id) + return e.getRepository(User).delete(user.id) + }) return Promise.reject({ errorCode: SignupErrorCode.Unknown }) } }