From a20484e486f6c758269237e7040fca42186a34a4 Mon Sep 17 00:00:00 2001 From: maverickstuder Date: Mon, 5 Feb 2024 11:06:23 +0100 Subject: [PATCH] RED-6625: Inconsistencies when creating a new user --- .../service/UserService.java | 4 ++++ .../com/knecon/fforesight/tests/UserTest.java | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/UserService.java b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/UserService.java index a5bfbeb..6ea260b 100644 --- a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/UserService.java +++ b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/UserService.java @@ -73,6 +73,10 @@ public class UserService { @CacheEvict(value = "${commons.keycloak.userCache}", allEntries = true, beforeInvocation = true) public User createUser(CreateUserRequest user) { + if (StringUtils.isEmpty(user.getEmail())) { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Email address must be set"); + } + String username = StringUtils.isEmpty(user.getUsername()) ? user.getEmail() : user.getUsername(); if (!this.getTenantUsersResource().search(username).isEmpty()) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "User with this username already exists"); diff --git a/src/test/java/com/knecon/fforesight/tests/UserTest.java b/src/test/java/com/knecon/fforesight/tests/UserTest.java index aa59134..b05faad 100644 --- a/src/test/java/com/knecon/fforesight/tests/UserTest.java +++ b/src/test/java/com/knecon/fforesight/tests/UserTest.java @@ -133,5 +133,23 @@ public class UserTest extends AbstractTenantUserManagementIntegrationTest { } } + + @Test + public void testCreateUserWithoutMail() { + + TenantContext.setTenantId(AbstractTenantUserManagementIntegrationTest.TEST_TENANT_ID); + + CreateUserRequest createUserRequest = new CreateUserRequest(); + createUserRequest.setFirstName("Test"); + createUserRequest.setLastName("New User"); + createUserRequest.setUsername(createUserRequest.getEmail()); + createUserRequest.setRoles(tenantUserManagementProperties.getKcRoleMapping().getAllRoles()); + try { + userClient.createUser(createUserRequest); + } catch (FeignException e) { + assertThat(e.status()).isEqualTo(400); + } + + } }