diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java index 96ef0d177c1..386199e1c4d 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java @@ -126,7 +126,6 @@ public class EventsResource extends AbstractSailingServerResource { @FormParam("boatClassName") String boatClassName) { SecurityUtils.getSubject().checkPermission(Permission.EVENT.getStringPermission(Mode.CREATE)); - logger.fine(SecurityUtils.getSubject().getSession().toString()); boolean createRegatta = Boolean.parseBoolean(createRegattaParam); boolean isPublic = Boolean.parseBoolean(isPublicParam); @@ -189,7 +188,7 @@ public class EventsResource extends AbstractSailingServerResource { Map sailorsInfoWebsiteURLs = null; Iterable images = Collections. emptyList(); Iterable videos = Collections. emptyList(); - + Event event = getService() .apply(new CreateEvent(eventName, eventDescription, startDate, endDate, venueName, isPublic, eventId, officialWebsiteURL, baseURL, sailorsInfoWebsiteURLs, images, videos, leaderboardGroupIds)); @@ -230,6 +229,8 @@ public class EventsResource extends AbstractSailingServerResource { @FormParam("controlTrackingFromStartAndFinishTimes") @DefaultValue(DEFAULT_REGATTA_CONTROL_TRACKING_FROM_START_AND_FINISH_TIMES) String controlTrackingFromStartAndFinishTimesParam, @FormParam("rankingMetric") @DefaultValue(DEFAULT_LG_RANKING_METRIC) String rankingMetricParam) { + SecurityUtils.getSubject().checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.CREATE, regattaName)); + SecurityUtils.getSubject().checkPermission(Permission.EVENT.getStringPermission(Mode.READ)); boolean isPersistent = Boolean.parseBoolean(isPersistentParam); boolean controlTrackingFromStartAndFinishTimes = Boolean.parseBoolean(controlTrackingFromStartAndFinishTimesParam); @@ -278,9 +279,9 @@ public class EventsResource extends AbstractSailingServerResource { String boatClassName = null; try { - boatClassName = BoatClassMasterdata.valueOf(boatClassNameParam).name(); + boatClassName = BoatClassMasterdata.valueOf(boatClassNameParam).getDisplayName(); } catch (IllegalArgumentException e) { - String correctValues = getEnumValuesAsString(BoatClassMasterdata.class); + String correctValues = getBoatClassDisplayNames(); return getValueUnknownResponse(boatClassNameParam, correctValues); } @@ -347,6 +348,9 @@ public class EventsResource extends AbstractSailingServerResource { public Response addCourseArea(@FormParam("eventId") String eventIdParam, @FormParam("courseAreaName") @DefaultValue(DEFAULT_SERIES_NAME) String courseAreaName) { +// SecurityUtils.getSubject().checkPermission(Permission.COURSEAREA.getStringPermission(Mode.CREATE)); + SecurityUtils.getSubject().checkPermission(Permission.EVENT.getStringPermission(Mode.CREATE)); + if (eventIdParam == null) { return getParameterMissingResponse("eventId"); } @@ -384,6 +388,8 @@ public class EventsResource extends AbstractSailingServerResource { public Response addLeaderboard(@FormParam("regattaName") String regattaName, @FormParam("discardThreshold") List discardThresholdsParam) { + SecurityUtils.getSubject().checkPermission(Permission.LEADERBOARD.getStringPermissionForObjects(Mode.CREATE, regattaName)); + if (regattaName == null) { return getParameterMissingResponse("regattaName"); } @@ -449,6 +455,8 @@ public class EventsResource extends AbstractSailingServerResource { @FormParam("overallLeaderboardDiscardThresholds") List overallLeaderboardDiscardThresholdsParam, @FormParam("overallLeaderboardScoringSchemeType") String overallLeaderboardScoringSchemeTypeParam) { + SecurityUtils.getSubject().checkPermission(Permission.LEADERBOARD_GROUP.getStringPermissionForObjects(Mode.CREATE, leaderboardGroupName)); + if (eventIdParam == null) { return getParameterMissingResponse("eventId"); } @@ -513,6 +521,10 @@ public class EventsResource extends AbstractSailingServerResource { private > String getEnumValuesAsString(Class e) { return EnumSet.allOf(e).stream().map(en -> en.name()).collect(Collectors.joining(", ")); } + + private String getBoatClassDisplayNames() { + return EnumSet.allOf(BoatClassMasterdata.class).stream().map(en -> en.getDisplayName()).collect(Collectors.joining(", ")); + } private LinkedHashMap createDefaultSeriesCreationParameters() { final LinkedHashMap seriesCreationParameters = new LinkedHashMap<>(); diff --git a/mobile/gradle/wrapper/gradle-wrapper.jar b/mobile/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000000..13372aef5e2 Binary files /dev/null and b/mobile/gradle/wrapper/gradle-wrapper.jar differ diff --git a/mobile/gradle/wrapper/gradle-wrapper.properties b/mobile/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000000..38b4ac26c2c --- /dev/null +++ b/mobile/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Thu Jul 27 10:32:40 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip