diff --git a/packages/features/auth/lib/verifyEmail.ts b/packages/features/auth/lib/verifyEmail.ts index 8bfc1f060b..7d67da502f 100644 --- a/packages/features/auth/lib/verifyEmail.ts +++ b/packages/features/auth/lib/verifyEmail.ts @@ -20,6 +20,7 @@ interface VerifyEmailType { email: string; language?: string; secondaryEmailId?: number; + isPlatform?: boolean; } export const sendEmailVerification = async ({ @@ -27,6 +28,7 @@ export const sendEmailVerification = async ({ language, username, secondaryEmailId, + isPlatform = false, }: VerifyEmailType) => { const token = randomBytes(32).toString("hex"); const translation = await getTranslation(language ?? "en", "common"); @@ -37,6 +39,11 @@ export const sendEmailVerification = async ({ return { ok: true, skipped: true }; } + if (isPlatform) { + log.warn("Skipping Email verification"); + return { ok: true, skipped: true }; + } + await checkRateLimitAndThrowError({ rateLimitingType: "core", identifier: email, diff --git a/packages/trpc/server/routers/viewer/organizations/create.handler.ts b/packages/trpc/server/routers/viewer/organizations/create.handler.ts index d2767b9e56..1ee3db8e04 100644 --- a/packages/trpc/server/routers/viewer/organizations/create.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/create.handler.ts @@ -161,19 +161,22 @@ export const createHandler = async ({ input, ctx }: CreateOptions) => { email: orgOwnerEmail, language: ctx.user.locale, username: ownerProfile.username || "", + isPlatform: isPlatform, }); - await sendOrganizationCreationEmail({ - language: translation, - from: ctx.user.name ?? `${organization.name}'s admin`, - to: orgOwnerEmail, - ownerNewUsername: ownerProfile.username, - ownerOldUsername: null, - orgDomain: getOrgFullOrigin(slug, { protocol: false }), - orgName: organization.name, - prevLink: null, - newLink: `${getOrgFullOrigin(slug, { protocol: true })}/${ownerProfile.username}`, - }); + if (!isPlatform) { + await sendOrganizationCreationEmail({ + language: translation, + from: ctx.user.name ?? `${organization.name}'s admin`, + to: orgOwnerEmail, + ownerNewUsername: ownerProfile.username, + ownerOldUsername: null, + orgDomain: getOrgFullOrigin(slug, { protocol: false }), + orgName: organization.name, + prevLink: null, + newLink: `${getOrgFullOrigin(slug, { protocol: true })}/${ownerProfile.username}`, + }); + } const user = await UserRepository.enrichUserWithItsProfile({ user: { ...orgOwner, organizationId: organization.id }, @@ -202,17 +205,19 @@ export const createHandler = async ({ input, ctx }: CreateOptions) => { }, }); - await sendOrganizationCreationEmail({ - language: inputLanguageTranslation, - from: ctx.user.name ?? `${organization.name}'s admin`, - to: orgOwnerEmail, - ownerNewUsername: ownerProfile.username, - ownerOldUsername: nonOrgUsernameForOwner, - orgDomain: getOrgFullOrigin(slug, { protocol: false }), - orgName: organization.name, - prevLink: `${getOrgFullOrigin("", { protocol: true })}/${nonOrgUsernameForOwner}`, - newLink: `${getOrgFullOrigin(slug, { protocol: true })}/${ownerProfile.username}`, - }); + if (!isPlatform) { + await sendOrganizationCreationEmail({ + language: inputLanguageTranslation, + from: ctx.user.name ?? `${organization.name}'s admin`, + to: orgOwnerEmail, + ownerNewUsername: ownerProfile.username, + ownerOldUsername: nonOrgUsernameForOwner, + orgDomain: getOrgFullOrigin(slug, { protocol: false }), + orgName: organization.name, + prevLink: `${getOrgFullOrigin("", { protocol: true })}/${nonOrgUsernameForOwner}`, + newLink: `${getOrgFullOrigin(slug, { protocol: true })}/${ownerProfile.username}`, + }); + } if (!organization.id) throw Error("User not created"); const user = await UserRepository.enrichUserWithItsProfile({