diff --git a/apps/api/src/services/account/profile.ts b/apps/api/src/services/account/profile.ts index 10d61d98..62add19d 100644 --- a/apps/api/src/services/account/profile.ts +++ b/apps/api/src/services/account/profile.ts @@ -4,6 +4,7 @@ import { createOrganizationMember, getFirstOrganization, getOrganizationByProfileId, + getUserOrgRolesMap, hasOrgMemberByProfileIdOrEmail } from '@cio/db/queries/organization'; import { getPlanLimit, toResourceUsage } from '@cio/utils/plans'; @@ -50,21 +51,27 @@ export async function getAccountData(userId: string): Promise roleId === ROLE.ADMIN || roleId === ROLE.TUTOR); - if (!alreadyInOrg) { - await createOrganizationMember({ - organizationId: firstOrg.id, - profileId: userId, - roleId: ROLE.STUDENT, - verified: true - }); + if (!isTeamMember) { + const firstOrg = await getFirstOrganization(); + if (firstOrg) { + const alreadyInOrg = await hasOrgMemberByProfileIdOrEmail(firstOrg.id, userId, profile.email ?? undefined); + + if (!alreadyInOrg) { + await createOrganizationMember({ + organizationId: firstOrg.id, + profileId: userId, + roleId: ROLE.STUDENT, + verified: true + }); + } + + organizations = await getOrganizationByProfileId(userId); } - - organizations = await getOrganizationByProfileId(userId); } }