fix: handle team invites being accepted but not added

This commit is contained in:
Mythie
2024-11-15 13:27:36 +11:00
parent 1c87cb1e0d
commit 876803b5db
2 changed files with 13 additions and 4 deletions

View File

@ -42,7 +42,16 @@ export const acceptTeamInvitation = async ({ userId, teamId }: AcceptTeamInvitat
}); });
if (teamMemberInvite.status === TeamMemberInviteStatus.ACCEPTED) { if (teamMemberInvite.status === TeamMemberInviteStatus.ACCEPTED) {
return; const memberExists = await tx.teamMember.findFirst({
where: {
teamId: teamMemberInvite.teamId,
userId: user.id,
},
});
if (memberExists) {
return;
}
} }
const { team } = teamMemberInvite; const { team } = teamMemberInvite;

View File

@ -3,7 +3,7 @@ import { hash } from '@node-rs/bcrypt';
import { getStripeCustomerByUser } from '@documenso/ee/server-only/stripe/get-customer'; import { getStripeCustomerByUser } from '@documenso/ee/server-only/stripe/get-customer';
import { updateSubscriptionItemQuantity } from '@documenso/ee/server-only/stripe/update-subscription-item-quantity'; import { updateSubscriptionItemQuantity } from '@documenso/ee/server-only/stripe/update-subscription-item-quantity';
import { prisma } from '@documenso/prisma'; import { prisma } from '@documenso/prisma';
import { IdentityProvider, Prisma, TeamMemberInviteStatus } from '@documenso/prisma/client'; import { IdentityProvider, TeamMemberInviteStatus } from '@documenso/prisma/client';
import { IS_BILLING_ENABLED } from '../../constants/app'; import { IS_BILLING_ENABLED } from '../../constants/app';
import { SALT_ROUNDS } from '../../constants/auth'; import { SALT_ROUNDS } from '../../constants/auth';
@ -59,11 +59,11 @@ export const createUser = async ({ name, email, password, signature, url }: Crea
const acceptedTeamInvites = await prisma.teamMemberInvite.findMany({ const acceptedTeamInvites = await prisma.teamMemberInvite.findMany({
where: { where: {
status: TeamMemberInviteStatus.ACCEPTED,
email: { email: {
equals: email, equals: email,
mode: Prisma.QueryMode.insensitive, mode: 'insensitive',
}, },
status: TeamMemberInviteStatus.ACCEPTED,
}, },
}); });