diff --git a/packages/lib/server/repository/profile.ts b/packages/lib/server/repository/profile.ts index abf248930b..e4d7f3cd09 100644 --- a/packages/lib/server/repository/profile.ts +++ b/packages/lib/server/repository/profile.ts @@ -375,9 +375,6 @@ export class ProfileRepository { lockEventTypeCreationForUsers: true, }, }, - members: { - select: membershipSelect, - }, }, }, }, diff --git a/packages/lib/server/repository/user.ts b/packages/lib/server/repository/user.ts index 2023176772..4ef71a4799 100644 --- a/packages/lib/server/repository/user.ts +++ b/packages/lib/server/repository/user.ts @@ -664,25 +664,18 @@ export class UserRepository { return !!teams.length; } static async isAdminOrOwnerOfTeam({ userId, teamId }: { userId: number; teamId: number }) { - const team = await prisma.team.findUnique({ + const isAdminOrOwnerOfTeam = await prisma.membership.findFirst({ where: { - id: teamId, - AND: [ - { - members: { - some: { - userId, - role: { in: [MembershipRole.ADMIN, MembershipRole.OWNER] }, - }, - }, - }, - ], + userId, + teamId, + role: { in: [MembershipRole.ADMIN, MembershipRole.OWNER] }, + accepted: true, }, select: { id: true, }, }); - return !!team; + return !!isAdminOrOwnerOfTeam; } static async getTimeZoneAndDefaultScheduleId({ userId }: { userId: number }) { return await prisma.user.findUnique({ diff --git a/packages/trpc/server/middlewares/sessionMiddleware.ts b/packages/trpc/server/middlewares/sessionMiddleware.ts index 443f16b9a8..ef5a5b5479 100644 --- a/packages/trpc/server/middlewares/sessionMiddleware.ts +++ b/packages/trpc/server/middlewares/sessionMiddleware.ts @@ -102,21 +102,16 @@ export async function getUserFromSession(ctx: TRPCContextInner, session: Maybe (member.role === "ADMIN" || member.role === "OWNER") && member.userId === user.id - ).length; + const isOrgAdmin = await UserRepository.isAdminOrOwnerOfTeam({ + userId: user.id, + teamId: user.profile.organization?.id ?? -1, + }); if (isOrgAdmin) { logger.debug("User is an org admin", safeStringify({ userId: user.id })); } else { logger.debug("User is not an org admin", safeStringify({ userId: user.id })); } - // Want to reduce the amount of data being sent - if (isOrgAdmin && user.profile?.organization?.members) { - user.profile.organization.members = []; - } - const organization = { ...user.profile?.organization, id: user.profile?.organization?.id ?? null,