diff --git a/pom.xml b/pom.xml
index cc0fa150..7b2bdd80 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,7 +42,7 @@
- 29
+ 30
diff --git a/src/main/java/org/gridsuite/explore/server/ExploreController.java b/src/main/java/org/gridsuite/explore/server/ExploreController.java
index 0c56a8ce..4e14fde9 100644
--- a/src/main/java/org/gridsuite/explore/server/ExploreController.java
+++ b/src/main/java/org/gridsuite/explore/server/ExploreController.java
@@ -59,6 +59,7 @@ public ResponseEntity createStudy(@PathVariable("studyName") String studyN
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader(QUERY_PARAM_USER_ID) String userId,
@RequestBody(required = false) Map importParams) {
+ exploreService.assertCanCreateCase(userId);
CaseInfo caseInfo = new CaseInfo(caseUuid, caseFormat);
exploreService.createStudy(studyName, caseInfo, description, userId, parentDirectoryUuid, importParams, duplicateCase);
return ResponseEntity.ok().build();
@@ -70,6 +71,7 @@ public ResponseEntity createStudy(@PathVariable("studyName") String studyN
public ResponseEntity duplicateStudy(@RequestParam("duplicateFrom") UUID studyId,
@RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId,
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
+ exploreService.assertCanCreateCase(userId);
exploreService.duplicateStudy(studyId, targetDirectoryId, userId);
return ResponseEntity.ok().build();
}
@@ -82,6 +84,7 @@ public ResponseEntity createCase(@PathVariable("caseName") String caseName
@RequestParam("description") String description,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
+ exploreService.assertCanCreateCase(userId);
exploreService.createCase(caseName, caseFile, description, userId, parentDirectoryUuid);
return ResponseEntity.ok().build();
}
@@ -93,6 +96,7 @@ public ResponseEntity duplicateCase(
@RequestParam("duplicateFrom") UUID caseId,
@RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId,
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
+ exploreService.assertCanCreateCase(userId);
exploreService.duplicateCase(caseId, targetDirectoryId, userId);
return ResponseEntity.ok().build();
}
diff --git a/src/main/java/org/gridsuite/explore/server/ExploreException.java b/src/main/java/org/gridsuite/explore/server/ExploreException.java
index d041d3da..7fed47fe 100644
--- a/src/main/java/org/gridsuite/explore/server/ExploreException.java
+++ b/src/main/java/org/gridsuite/explore/server/ExploreException.java
@@ -19,7 +19,8 @@ public enum Type {
UNKNOWN_ELEMENT_TYPE,
REMOTE_ERROR,
IMPORT_CASE_FAILED,
- INCORRECT_CASE_FILE
+ INCORRECT_CASE_FILE,
+ MAX_ELEMENTS_EXCEEDED,
}
private final Type type;
diff --git a/src/main/java/org/gridsuite/explore/server/RestResponseEntityExceptionHandler.java b/src/main/java/org/gridsuite/explore/server/RestResponseEntityExceptionHandler.java
index 25a9983b..8a0a8226 100644
--- a/src/main/java/org/gridsuite/explore/server/RestResponseEntityExceptionHandler.java
+++ b/src/main/java/org/gridsuite/explore/server/RestResponseEntityExceptionHandler.java
@@ -42,6 +42,8 @@ protected ResponseEntity