From 27b77adbddc38e9cc2eada82e9a39cf4bd2f9009 Mon Sep 17 00:00:00 2001 From: Steffen Jacobs Date: Thu, 27 Jun 2019 15:10:33 +0200 Subject: [PATCH] Bug 4960: fixed bug where empty element was sent if the event does not exist on this server --- .../jaxrs/api/TrackedEventsResource.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/TrackedEventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/TrackedEventsResource.java index 0124ce69114..c9db084bf9e 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/TrackedEventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/TrackedEventsResource.java @@ -92,9 +92,9 @@ public class TrackedEventsResource extends AbstractSailingServerResource { final UUID eventId = pref.getEventId(); final Event event = getService().getEvent(eventId); + final JSONObject jsonEvent = new JSONObject(); if (event != null) { - // event actually exists -> parse relevant data - final JSONObject jsonEvent = new JSONObject(); + // event actually exists on this server -> parse relevant data if (getSecurityService().hasCurrentUserReadPermission(event)) { // user has read permission on event -> add additional event-specific data final OwnershipAnnotation ownership = getSecurityService() @@ -111,19 +111,21 @@ public class TrackedEventsResource extends AbstractSailingServerResource { .findImagesWithTag(MediaTagConstants.LOGO.getName()); if (!imageWithLogoTag.isEmpty()) { jsonEvent.put(KEY_EVENT_IMAGE_URL, imageWithLogoTag.get(0).getURL().toExternalForm()); + } else { + // user does not have read permissions for this event on this server -> only send back + // basic data } } - jsonEvent.put(KEY_EVENT_ID, pref.getEventId().toString()); - jsonEvent.put(KEY_EVENT_REGATTA_SECRET, pref.getRegattaSecret()); - jsonEvent.put(KEY_EVENT_BASE_URL, pref.getBaseUrl()); - jsonEvent.put(KEY_EVENT_IS_ARCHIVED, pref.getIsArchived()); - jsonEvent.put(KEY_LEADERBOARD_NAME, pref.getLeaderboardName()); - jsonEvent.put(KEY_EVENT_TRACKED_ELEMENTS, trackedElementsToJson(pref)); - result.add(jsonEvent); } else { - // TODO: - // check, if base url is equal to this server, if not, event might be on different server + // event does not exist on this server --> only send back basic data } + jsonEvent.put(KEY_EVENT_ID, pref.getEventId().toString()); + jsonEvent.put(KEY_EVENT_REGATTA_SECRET, pref.getRegattaSecret()); + jsonEvent.put(KEY_EVENT_BASE_URL, pref.getBaseUrl()); + jsonEvent.put(KEY_EVENT_IS_ARCHIVED, pref.getIsArchived()); + jsonEvent.put(KEY_LEADERBOARD_NAME, pref.getLeaderboardName()); + jsonEvent.put(KEY_EVENT_TRACKED_ELEMENTS, trackedElementsToJson(pref)); + result.add(jsonEvent); } }