From 7153e55f4d209913b5a56f227488d76cf2241998 Mon Sep 17 00:00:00 2001 From: Paul Bailey Date: Sun, 16 Nov 2025 20:53:59 +0000 Subject: [PATCH] Add organizerClerkId to events for proper organizer permission checks --- server/src/services/eventService.ts | 4 ++++ src/pages/EventsPage.tsx | 7 ++----- src/types/index.ts | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/server/src/services/eventService.ts b/server/src/services/eventService.ts index af9c7de..7795bc5 100644 --- a/server/src/services/eventService.ts +++ b/server/src/services/eventService.ts @@ -61,6 +61,7 @@ export const eventService = { organizer: { select: { id: true, + clerkId: true, username: true, firstName: true, lastName: true, @@ -79,6 +80,7 @@ export const eventService = { return events.map((event) => ({ id: event.id, organizerId: event.organizerId, + organizerClerkId: event.organizer.clerkId, title: event.title, description: event.description, latitude: parseFloat(event.latitude.toString()), @@ -102,6 +104,7 @@ export const eventService = { organizer: { select: { id: true, + clerkId: true, username: true, firstName: true, lastName: true, @@ -121,6 +124,7 @@ export const eventService = { return { id: event.id, organizerId: event.organizerId, + organizerClerkId: event.organizer.clerkId, title: event.title, description: event.description, latitude: parseFloat(event.latitude.toString()), diff --git a/src/pages/EventsPage.tsx b/src/pages/EventsPage.tsx index 536f6e4..44d349d 100644 --- a/src/pages/EventsPage.tsx +++ b/src/pages/EventsPage.tsx @@ -34,11 +34,8 @@ export function EventsPage() { useEffect(() => { if (selectedEvent && isSignedIn) { checkRegistrationStatus(selectedEvent.id); - // Check if current user is the organizer - // Note: We're comparing Clerk user ID with organizerId - // In a real implementation, we'd need to fetch the organizer's Clerk ID - // For now, we'll use a simple check - setIsOrganizer(user?.id === selectedEvent.organizerId); + // Check if current user is the organizer by comparing Clerk IDs + setIsOrganizer(user?.id === selectedEvent.organizerClerkId); } else { setIsOrganizer(false); } diff --git a/src/types/index.ts b/src/types/index.ts index 3049145..f370ea1 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -48,6 +48,7 @@ export interface Report { export interface CleanupEvent { id: string; organizerId: string; + organizerClerkId?: string; // Clerk ID of the organizer for permission checks title: string; description: string; latitude: number;