Skip to content

Commit b2ade56

Browse files
authored
refactor: more pbac replacements (#24135)
* getUserConnectedApps * create teams * use permission check in team deletion * team read * revert * publish handler * wip * revert * wip * wip
1 parent 27820ce commit b2ade56

File tree

6 files changed

+23
-5
lines changed

6 files changed

+23
-5
lines changed

packages/trpc/server/routers/viewer/credits/buyCredits.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { MembershipRepository } from "@calcom/lib/server/repository/membership";
55
import { TeamRepository } from "@calcom/lib/server/repository/team";
66
import { TeamService } from "@calcom/lib/server/service/teamService";
77
import prisma from "@calcom/prisma";
8-
import { MembershipRole } from "@calcom/prisma/client";
8+
import { MembershipRole } from "@calcom/prisma/enums";
99
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
1010

1111
import { TRPCError } from "@trpc/server";

packages/trpc/server/routers/viewer/credits/getAllCredits.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
22
import { MembershipRepository } from "@calcom/lib/server/repository/membership";
33
import { TeamService } from "@calcom/lib/server/service/teamService";
4-
import { MembershipRole } from "@calcom/prisma/client";
4+
import { MembershipRole } from "@calcom/prisma/enums";
55
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
66

77
import { TRPCError } from "@trpc/server";

packages/trpc/server/routers/viewer/organizations/addMembersToEventTypes.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
22
import prisma from "@calcom/prisma";
33
import type { Prisma } from "@calcom/prisma/client";
4-
import { MembershipRole } from "@calcom/prisma/client";
4+
import { MembershipRole } from "@calcom/prisma/enums";
55

66
import { TRPCError } from "@trpc/server";
77

packages/trpc/server/routers/viewer/organizations/deleteTeam.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
22
import { prisma } from "@calcom/prisma";
3-
import { MembershipRole } from "@calcom/prisma/client";
3+
import { MembershipRole } from "@calcom/prisma/enums";
44

55
import { TRPCError } from "@trpc/server";
66

packages/trpc/server/routers/viewer/organizations/getTeams.handler.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
2+
import { MembershipRole } from "@calcom/prisma/enums";
13
import { prisma } from "@calcom/prisma";
24

35
import { TRPCError } from "@trpc/server";
@@ -16,6 +18,22 @@ export async function getTeamsHandler({ ctx }: GetTeamsHandler) {
1618

1719
if (!currentUserOrgId) throw new TRPCError({ code: "UNAUTHORIZED" });
1820

21+
// Check if user has permission to read teams in the organization
22+
const permissionCheckService = new PermissionCheckService();
23+
const hasPermission = await permissionCheckService.checkPermission({
24+
userId: currentUser.id,
25+
teamId: currentUserOrgId,
26+
permission: "team.read",
27+
fallbackRoles: [MembershipRole.OWNER, MembershipRole.ADMIN, MembershipRole.MEMBER],
28+
});
29+
30+
if (!hasPermission) {
31+
throw new TRPCError({
32+
code: "UNAUTHORIZED",
33+
message: "You are not authorized to view teams in this organization",
34+
});
35+
}
36+
1937
const allOrgTeams = await prisma.team.findMany({
2038
where: {
2139
parentId: currentUserOrgId,

packages/trpc/server/routers/viewer/organizations/publish.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { purchaseTeamOrOrgSubscription } from "@calcom/features/ee/teams/lib/pay
33
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
44
import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants";
55
import { prisma } from "@calcom/prisma";
6-
import { MembershipRole } from "@calcom/prisma/client";
6+
import { MembershipRole } from "@calcom/prisma/enums";
77
import { teamMetadataStrictSchema } from "@calcom/prisma/zod-utils";
88

99
import { TRPCError } from "@trpc/server";

0 commit comments

Comments
 (0)