diff --git a/src/main/java/alfio/manager/AccessService.java b/src/main/java/alfio/manager/AccessService.java index 1b0442672..f7194160d 100644 --- a/src/main/java/alfio/manager/AccessService.java +++ b/src/main/java/alfio/manager/AccessService.java @@ -87,7 +87,12 @@ public void checkOrganizationAccess(Principal principal, int organizationId) { public void checkEventAccess(Principal principal, int eventId) { var orgId = eventRepository.findOrganizationIdByEventId(eventId); - checkOrganizationAccess(principal, eventId); + checkOrganizationAccess(principal, orgId); + } + + public void checkEventAccess(Principal principal, String eventShortName) { + var orgId = eventRepository.findOrganizationIdByShortName(eventShortName); + checkOrganizationAccess(principal, orgId); } private static boolean isSystemApiUser(Principal principal) { diff --git a/src/main/java/alfio/repository/EventRepository.java b/src/main/java/alfio/repository/EventRepository.java index 50cef66a8..d737099a4 100644 --- a/src/main/java/alfio/repository/EventRepository.java +++ b/src/main/java/alfio/repository/EventRepository.java @@ -54,6 +54,10 @@ public interface EventRepository { @Query("select org_id from event where id = :eventId") int findOrganizationIdByEventId(@Bind("eventId") int eventId); + + @Query("select org_id from event where short_name = :shortName") + int findOrganizationIdByShortName(@Bind("shortName") String eventShortName); + default ZoneId getZoneIdByEventId(int eventId) { return TimeZone.getTimeZone(getTimeZoneByEventId(eventId)).toZoneId(); }