Skip to content

Commit 9631d0a

Browse files
chore: update add members to team (calcom#25685)
1 parent 1182460 commit 9631d0a

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

packages/features/ee/teams/repositories/TeamRepository.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,4 +588,15 @@ export class TeamRepository {
588588
const action = permission.substring(lastDotIndex + 1);
589589
return { resource, action };
590590
}
591+
592+
async findTeamsNotBelongingToOrgByIds({ teamIds, orgId }: { teamIds: number[]; orgId: number }) {
593+
return await this.prismaClient.team.findMany({
594+
where: {
595+
id: { in: teamIds },
596+
NOT: {
597+
parentId: orgId, // Finds any team whose orgId is NOT the target ID
598+
},
599+
},
600+
});
601+
}
591602
}

packages/trpc/server/routers/viewer/organizations/utils.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { TeamRepository } from "@calcom/ee/teams/repositories/TeamRepository";
12
import { updateNewTeamMemberEventTypes } from "@calcom/features/ee/teams/lib/queries";
23
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
34
import { prisma } from "@calcom/prisma";
@@ -17,6 +18,21 @@ interface AddBulkToTeamProps {
1718
export const addMembersToTeams = async ({ user, input }: AddBulkToTeamProps) => {
1819
if (!user.organizationId) throw new TRPCError({ code: "UNAUTHORIZED" });
1920

21+
const teamRepository = new TeamRepository(prisma);
22+
const teamsNotBelongingToOrg = await teamRepository.findTeamsNotBelongingToOrgByIds({
23+
teamIds: input.teamIds,
24+
orgId: user.organizationId,
25+
});
26+
27+
if (teamsNotBelongingToOrg.length > 0) {
28+
throw new TRPCError({
29+
code: "BAD_REQUEST",
30+
message: `One or more teams do not belong to your organization: ${teamsNotBelongingToOrg
31+
.map((team) => team.id)
32+
.join(", ")}`,
33+
});
34+
}
35+
2036
// Check if user has permission to invite team members in the organization
2137
const permissionCheckService = new PermissionCheckService();
2238
const hasPermission = await permissionCheckService.checkPermission({

0 commit comments

Comments
 (0)