From fdc583da93ee57b0677752f59e5650485444bed0 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Thu, 24 Apr 2025 20:55:01 +0200 Subject: [PATCH] WIP Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at> --- .../at/tuwien/gateway/KeycloakGatewayIntegrationTest.java | 1 - .../at/tuwien/service/UserServicePersistenceTest.java | 6 ------ .../test/java/at/tuwien/service/UserServiceUnitTest.java | 8 ++------ .../main/java/at/tuwien/service/impl/UserServiceImpl.java | 7 +++++++ dbrepo-ui/pages/user/info.vue | 8 ++++++++ 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java index 583fa4c440..e2d61a9936 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/gateway/KeycloakGatewayIntegrationTest.java @@ -103,7 +103,6 @@ public class KeycloakGatewayIntegrationTest extends AbstractUnitTest { keycloakUtils.createUser(USER_1_ID, USER_1_KEYCLOAK_SIGNUP_REQUEST); /* test */ - keycloakGateway.updateUser(keycloakUtils.getUserId(USER_1_USERNAME), USER_1_UPDATE_DTO); final UserRepresentation user = keycloakUtils.getUser(USER_1_USERNAME); assertNotNull(user.getId()); assertEquals(USER_1_FIRSTNAME, user.getFirstName()); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java index c224fa9a85..ad7a97ce03 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServicePersistenceTest.java @@ -20,7 +20,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import java.util.List; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.doNothing; @Log4j2 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) @@ -91,11 +90,6 @@ public class UserServicePersistenceTest extends AbstractUnitTest { .language("de") .build(); - /* mock */ - doNothing() - .when(keycloakGateway) - .updateUser(USER_1_ID, request); - /* test */ final User response = userService.modify(USER_1, request); assertEquals(USER_1_ID, response.getId()); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java index c610f3ee95..8cec9e1f95 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/UserServiceUnitTest.java @@ -1,6 +1,5 @@ package at.tuwien.service; -import at.tuwien.api.user.UserUpdateDto; import at.tuwien.entities.user.User; import at.tuwien.exception.AuthServiceException; import at.tuwien.exception.UserNotFoundException; @@ -17,11 +16,11 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import java.util.List; import java.util.Optional; -import java.util.UUID; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.when; @ExtendWith(SpringExtension.class) @SpringBootTest @@ -87,9 +86,6 @@ public class UserServiceUnitTest extends AbstractUnitTest { .thenReturn(Optional.of(USER_1)); when(userRepository.save(any(User.class))) .thenReturn(USER_1); - doNothing() - .when(keycloakGateway) - .updateUser(any(UUID.class), any(UserUpdateDto.class)); /* test */ final User response = userService.modify(USER_1, USER_1_UPDATE_DTO); diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java index ad05c4fd46..468f50f8e4 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java @@ -13,6 +13,7 @@ import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.nio.charset.StandardCharsets; import java.util.List; @@ -33,11 +34,13 @@ public class UserServiceImpl implements UserService { } @Override + @Transactional(readOnly = true) public List<User> findAll() { return userRepository.findAll(); } @Override + @Transactional(readOnly = true) public User findByUsername(String username) throws UserNotFoundException { final Optional<User> optional = userRepository.findByUsername(username); if (optional.isEmpty()) { @@ -48,11 +51,13 @@ public class UserServiceImpl implements UserService { } @Override + @Transactional(readOnly = true) public List<User> findAllInternalUsers() { return userRepository.findAllInternal(); } @Override + @Transactional(readOnly = true) public User findById(UUID id) throws UserNotFoundException { final Optional<User> optional = userRepository.findById(id); if (optional.isEmpty()) { @@ -63,6 +68,7 @@ public class UserServiceImpl implements UserService { } @Override + @Transactional public User create(CreateUserDto data) { /* create at authentication service */ final User entity = User.builder() @@ -83,6 +89,7 @@ public class UserServiceImpl implements UserService { } @Override + @Transactional public User modify(User user, UserUpdateDto data) throws UserNotFoundException, AuthServiceException { user.setFirstname(data.getFirstname()); user.setLastname(data.getLastname()); diff --git a/dbrepo-ui/pages/user/info.vue b/dbrepo-ui/pages/user/info.vue index 0f52ca7fcc..3c222a15b6 100644 --- a/dbrepo-ui/pages/user/info.vue +++ b/dbrepo-ui/pages/user/info.vue @@ -237,6 +237,14 @@ export default { .then(() => { console.info('Updated user information') const toast = useToastInstance() + const user = Object.assign({}, this.cacheUser) + user.given_name = this.model.firstname + user.family_name = this.model.lastname + user.orcid = this.model.orcid + user.affiliation = this.model.affiliation + user.theme = this.model.theme + user.language = this.model.language + this.cacheStore.setUser(user) toast.success(this.$t('success.user.info')) /* language */ this.cacheStore.setLocale(this.model.language) -- GitLab