Merge branch 'RED-6625' into 'main'

RED-6625: Inconsistencies when creating a new user

See merge request fforesight/tenant-user-management-service!79
This commit is contained in:
Maverick Studer 2024-02-05 11:24:29 +01:00
commit 2d34c1999d
2 changed files with 22 additions and 0 deletions

View File

@ -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");

View File

@ -2,6 +2,8 @@ package com.knecon.fforesight.tenantusermanagement.tests;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.util.HashSet;
import java.util.List;
@ -133,5 +135,21 @@ 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());
// Optionally, you can also check the status code of the exception
FeignException e = assertThrows(FeignException.class, () -> userClient.createUser(createUserRequest));
assertEquals(400, e.status());
}
}