RED-9628: Some actions for users without roles not possible
This commit is contained in:
parent
3f94e66eda
commit
6bbe3316ac
@ -642,7 +642,7 @@ public class UserService {
|
||||
|
||||
private ValidationResult validateRoleRanks(Set<String> currentRoles, Set<String> userRoles) {
|
||||
|
||||
if (userRoles.stream()
|
||||
if (!userRoles.isEmpty() && userRoles.stream()
|
||||
.allMatch(ApplicationRoles::isKneconRole)) {
|
||||
return ValidationResult.INVALID;
|
||||
}
|
||||
|
||||
@ -637,6 +637,36 @@ public class UserTest extends AbstractTenantUserManagementIntegrationTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testOperationsOnUserWithoutRoles() {
|
||||
|
||||
// set context and user
|
||||
TenantContext.setTenantId(AbstractTenantUserManagementIntegrationTest.TEST_TENANT_ID);
|
||||
tokenService.setUser("admin@knecon.com", "secret");
|
||||
|
||||
var createUserRequest = new CreateUserRequest();
|
||||
createUserRequest.setEmail("noroles@notknecon.com");
|
||||
createUserRequest.setFirstName("No");
|
||||
createUserRequest.setLastName("Roles");
|
||||
createUserRequest.setUsername("NoRolesAtAll");
|
||||
createUserRequest.setRoles(new HashSet<>());
|
||||
User noRolesUser = userClient.createUser(createUserRequest);
|
||||
|
||||
userClient.resetPassword(noRolesUser.getUserId(), ResetPasswordRequest.builder().password("SuperSecret42!!").build());
|
||||
|
||||
userClient.activateProfile(noRolesUser.getUserId(), false);
|
||||
noRolesUser = userClient.getUserById(noRolesUser.getUserId());
|
||||
assertFalse(noRolesUser.isActive());
|
||||
|
||||
var allUsers = userClient.getAllUsers(true);
|
||||
var sizeBefore = allUsers.size();
|
||||
userClient.deleteUser(noRolesUser.getUserId());
|
||||
allUsers = userClient.getAllUsers(true);
|
||||
assertThat(allUsers).hasSize(sizeBefore - 1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testCreateUserWithInvalidEmailFormat() {
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user