From efcfd7bb9b4c3d979821550d9e1644e0121841ac Mon Sep 17 00:00:00 2001 From: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> Date: Wed, 13 Sep 2023 19:46:41 -0400 Subject: [PATCH] fix: when creating new user, set email handle as username (#11238) * When creating new user, set email handle as username * Accounting for external invited users --------- Co-authored-by: Peer Richelsen Co-authored-by: Leo Giovanetti --- .../viewer/teams/inviteMember/inviteMember.handler.ts | 1 + .../server/routers/viewer/teams/inviteMember/utils.ts | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.ts index 39b4356e36..721cc28418 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler.ts @@ -68,6 +68,7 @@ export const inviteMemberHandler = async ({ ctx, input }: InviteMemberOptions) = usernameOrEmail, input, connectionInfo, + autoAcceptEmailDomain, parentId: team.parentId, }); diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts b/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts index 118e8bb88b..69be175e5c 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember/utils.ts @@ -5,6 +5,7 @@ import { sendTeamInviteEmail, sendOrganizationAutoJoinEmail } from "@calcom/emai import { WEBAPP_URL } from "@calcom/lib/constants"; import { isTeamAdmin } from "@calcom/lib/server/queries"; import { isOrganisationAdmin } from "@calcom/lib/server/queries/organisations"; +import slugify from "@calcom/lib/slugify"; import { prisma } from "@calcom/prisma"; import type { Team } from "@calcom/prisma/client"; import { Prisma, type User } from "@calcom/prisma/client"; @@ -136,17 +137,26 @@ export async function createNewUserConnectToOrgIfExists({ usernameOrEmail, input, parentId, + autoAcceptEmailDomain, connectionInfo, }: { usernameOrEmail: string; input: InviteMemberOptions["input"]; parentId?: number | null; + autoAcceptEmailDomain?: string; connectionInfo: ReturnType; }) { const { orgId, autoAccept } = connectionInfo; + const [emailUser, emailDomain] = usernameOrEmail.split("@"); + const username = + emailDomain === autoAcceptEmailDomain + ? slugify(emailUser) + : slugify(`${emailUser}-${emailDomain.split(".")[0]}`); + const createdUser = await prisma.user.create({ data: { + username, email: usernameOrEmail, verified: true, invitedTo: input.teamId,