chore: update add members to team (#25685)

This commit is contained in:
Morgan
2025-12-08 03:48:15 +00:00
committed by GitHub
parent 1182460d5c
commit 9631d0a64b
2 changed files with 27 additions and 0 deletions
@@ -588,4 +588,15 @@ export class TeamRepository {
const action = permission.substring(lastDotIndex + 1);
return { resource, action };
}
async findTeamsNotBelongingToOrgByIds({ teamIds, orgId }: { teamIds: number[]; orgId: number }) {
return await this.prismaClient.team.findMany({
where: {
id: { in: teamIds },
NOT: {
parentId: orgId, // Finds any team whose orgId is NOT the target ID
},
},
});
}
}
@@ -1,3 +1,4 @@
import { TeamRepository } from "@calcom/ee/teams/repositories/TeamRepository";
import { updateNewTeamMemberEventTypes } from "@calcom/features/ee/teams/lib/queries";
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
import { prisma } from "@calcom/prisma";
@@ -17,6 +18,21 @@ interface AddBulkToTeamProps {
export const addMembersToTeams = async ({ user, input }: AddBulkToTeamProps) => {
if (!user.organizationId) throw new TRPCError({ code: "UNAUTHORIZED" });
const teamRepository = new TeamRepository(prisma);
const teamsNotBelongingToOrg = await teamRepository.findTeamsNotBelongingToOrgByIds({
teamIds: input.teamIds,
orgId: user.organizationId,
});
if (teamsNotBelongingToOrg.length > 0) {
throw new TRPCError({
code: "BAD_REQUEST",
message: `One or more teams do not belong to your organization: ${teamsNotBelongingToOrg
.map((team) => team.id)
.join(", ")}`,
});
}
// Check if user has permission to invite team members in the organization
const permissionCheckService = new PermissionCheckService();
const hasPermission = await permissionCheckService.checkPermission({