RED-8333: Misleading error message when creating user with already existing e-mail
This commit is contained in:
parent
1e0fbd8e1d
commit
ac1b86fa41
@ -12,6 +12,7 @@ import jakarta.ws.rs.ClientErrorException;
|
||||
import jakarta.ws.rs.NotAuthorizedException;
|
||||
import jakarta.ws.rs.NotFoundException;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
import org.apache.commons.validator.routines.EmailValidator;
|
||||
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
|
||||
import org.jboss.resteasy.client.jaxrs.internal.ResteasyClientBuilderImpl;
|
||||
@ -78,17 +79,13 @@ public class UserService {
|
||||
}
|
||||
|
||||
String username = StringUtils.isEmpty(user.getUsername()) ? user.getEmail() : user.getUsername();
|
||||
if (!this.getTenantUsersResource().search(username, true).isEmpty()) {
|
||||
throw new ResponseStatusException(HttpStatus.CONFLICT, "User with this username already exists");
|
||||
if (!this.getTenantUsersResource().search(username, true).isEmpty() || !this.getTenantUsersResource().searchByEmail(user.getEmail(), true).isEmpty()) {
|
||||
throw new ResponseStatusException(HttpStatus.CONFLICT, "User with this username or email address already exists");
|
||||
}
|
||||
|
||||
if (!EmailValidator.getInstance().isValid(user.getEmail())) {
|
||||
throw new ResponseStatusException(HttpStatus.CONFLICT, "Email address format is not valid");
|
||||
}
|
||||
// also search by email in case the username was provided at creation
|
||||
if (!StringUtils.isEmpty(user.getUsername()) && !this.getTenantUsersResource().searchByEmail(user.getEmail(), true).isEmpty()) {
|
||||
throw new ResponseStatusException(HttpStatus.CONFLICT, "User with this email already exists");
|
||||
}
|
||||
|
||||
tenantUserManagementProperties.getKcRoleMapping().validateRoles(user.getRoles());
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user