From ad958f10bd80df824f836430984a6083a251dddf Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Mon, 17 Apr 2023 19:50:34 -0400 Subject: [PATCH] perf: improve booking confirm authorization (#8304) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * perf: improve booking confirm authorization * removes unreachable code --------- Co-authored-by: Efraín Rochín --- .../trpc/server/routers/viewer/bookings.tsx | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/packages/trpc/server/routers/viewer/bookings.tsx b/packages/trpc/server/routers/viewer/bookings.tsx index 283e96efb2..4c02901992 100644 --- a/packages/trpc/server/routers/viewer/bookings.tsx +++ b/packages/trpc/server/routers/viewer/bookings.tsx @@ -781,30 +781,22 @@ export const bookingsRouter = router({ }); const authorized = async () => { - // if the organizer - if (booking.userId === user.id) { - return true; - } - const eventType = await prisma.eventType.findUnique({ + const eventType = await prisma.eventType.findFirst({ where: { id: booking.eventTypeId || undefined, + schedulingType: SchedulingType.COLLECTIVE, }, select: { - id: true, - schedulingType: true, users: true, }, }); - if ( - eventType?.schedulingType === SchedulingType.COLLECTIVE && - eventType.users.find((user) => user.id === user.id) - ) { - return true; - } - return false; + + return eventType && eventType.users.find((user) => booking.userId === user.id); }; - if (!(await authorized())) throw new TRPCError({ code: "UNAUTHORIZED", message: "UNAUTHORIZED" }); + if (booking.userId !== user.id && !(await authorized())) { + throw new TRPCError({ code: "UNAUTHORIZED", message: "UNAUTHORIZED" }); + } const isConfirmed = booking.status === BookingStatus.ACCEPTED; if (isConfirmed) throw new TRPCError({ code: "BAD_REQUEST", message: "Booking already confirmed" });