Skip to content

Commit e4e2c45

Browse files
authored
Fix for LF params reset made by a user with no profile (#555)
Signed-off-by: David BRAQUART <[email protected]>
1 parent 111a9e4 commit e4e2c45

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

src/main/java/org/gridsuite/study/server/service/ConsumerService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ public Consumer<Message<String>> consumeCaseImportSucceeded() {
229229

230230
private UserProfileInfos getUserProfile(String userId) {
231231
try {
232-
return userAdminService.getUserProfile(userId);
232+
return userAdminService.getUserProfile(userId).orElse(null);
233233
} catch (Exception e) {
234234
LOGGER.error(String.format("Could not access to profile for user '%s'", userId), e);
235235
}

src/main/java/org/gridsuite/study/server/service/StudyService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1054,7 +1054,7 @@ public boolean createOrUpdateLoadFlowParameters(StudyEntity studyEntity, String
10541054
boolean userProfileIssue = false;
10551055
UUID existingLoadFlowParametersUuid = studyEntity.getLoadFlowParametersUuid();
10561056

1057-
UserProfileInfos userProfileInfos = parameters == null ? userAdminService.getUserProfile(userId) : null;
1057+
UserProfileInfos userProfileInfos = parameters == null ? userAdminService.getUserProfile(userId).orElse(null) : null;
10581058
if (parameters == null && userProfileInfos != null && userProfileInfos.getLoadFlowParameterId() != null) {
10591059
// reset case, with existing profile, having default LF params
10601060
try {

src/main/java/org/gridsuite/study/server/service/UserAdminService.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import org.springframework.web.client.RestTemplate;
1616
import org.springframework.web.util.UriComponentsBuilder;
1717

18+
import java.util.Optional;
19+
1820
import static org.gridsuite.study.server.StudyConstants.*;
1921
import static org.gridsuite.study.server.StudyException.Type.GET_USER_PROFILE_FAILED;
2022
import static org.gridsuite.study.server.utils.StudyUtils.handleHttpError;
@@ -38,12 +40,15 @@ public void setUserAdminServerBaseUri(String serverBaseUri) {
3840
this.userAdminServerBaseUri = serverBaseUri;
3941
}
4042

41-
public UserProfileInfos getUserProfile(String sub) {
43+
public Optional<UserProfileInfos> getUserProfile(String sub) {
4244
String path = UriComponentsBuilder.fromPath(DELIMITER + USER_ADMIN_API_VERSION + USERS_PROFILE_URI)
4345
.buildAndExpand(sub).toUriString();
4446
try {
45-
return restTemplate.getForObject(userAdminServerBaseUri + path, UserProfileInfos.class);
47+
return Optional.of(restTemplate.getForObject(userAdminServerBaseUri + path, UserProfileInfos.class));
4648
} catch (HttpStatusCodeException e) {
49+
if (e.getStatusCode().value() == 404) {
50+
return Optional.empty(); // a user may not have a profile
51+
}
4752
throw handleHttpError(e, GET_USER_PROFILE_FAILED);
4853
}
4954
}

src/test/java/org/gridsuite/study/server/LoadFlowTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,7 @@ public MockResponse dispatch(RecordedRequest request) {
293293
return new MockResponse().setResponseCode(200).setBody(objectMapper.writeValueAsString(LOADFLOW_PARAMETERS_UUID_STRING))
294294
.addHeader("Content-Type", "application/json; charset=utf-8");
295295
} else if (path.matches("/v1/users/" + NO_PROFILE_USER_ID + "/profile")) {
296-
return new MockResponse().setResponseCode(200)
297-
.addHeader("Content-Type", "application/json; charset=utf-8");
296+
return new MockResponse().setResponseCode(404);
298297
} else if (path.matches("/v1/users/" + NO_PARAMS_IN_PROFILE_USER_ID + "/profile")) {
299298
return new MockResponse().setResponseCode(200).setBody(USER_PROFILE_NO_PARAMS_JSON)
300299
.addHeader("Content-Type", "application/json; charset=utf-8");

0 commit comments

Comments
 (0)