use of com.sequenceiq.freeipa.service.freeipa.user.UserSyncRequestFilter in project cloudbreak by hortonworks.
the class UserV1ControllerTest method synchronizeUserRejected.
@Test
void synchronizeUserRejected() {
Operation operation = mock(Operation.class);
UserSyncRequestFilter userSyncFilter = new UserSyncRequestFilter(Set.of(USER_CRN), Set.of(), Optional.empty());
when(userSyncService.synchronizeUsersWithCustomPermissionCheck(ACCOUNT_ID, USER_CRN, Set.of(), userSyncFilter, WorkloadCredentialsUpdateType.UPDATE_IF_CHANGED, AuthorizationResourceAction.DESCRIBE_ENVIRONMENT)).thenReturn(operation);
SyncOperationStatus status = mock(SyncOperationStatus.class);
when(status.getStatus()).thenReturn(SynchronizationStatus.REJECTED);
when(operationToSyncOperationStatus.convert(operation)).thenReturn(status);
SynchronizeUserRequest request = mock(SynchronizeUserRequest.class);
assertThrows(SyncOperationAlreadyRunningException.class, () -> ThreadBasedUserCrnProvider.doAs(USER_CRN, () -> underTest.synchronizeUser(request)));
}
use of com.sequenceiq.freeipa.service.freeipa.user.UserSyncRequestFilter in project cloudbreak by hortonworks.
the class UserV1ControllerTest method synchronizeAllUsersNullDeleteWorkloadUser.
@Test
void synchronizeAllUsersNullDeleteWorkloadUser() {
Set<String> environments = Set.of(ENV_CRN);
Set<String> users = Set.of(USER_CRN);
Set<String> machineUsers = Set.of(MACHINE_USER_CRN);
SynchronizeAllUsersRequest request = new SynchronizeAllUsersRequest();
request.setEnvironments(environments);
request.setUsers(users);
request.setMachineUsers(machineUsers);
request.setWorkloadCredentialsUpdateType(WorkloadCredentialsUpdateType.FORCE_UPDATE);
request.setDeletedWorkloadUsers(null);
Operation operation = mock(Operation.class);
when(userSyncService.synchronizeUsersWithCustomPermissionCheck(any(), any(), any(), any(), any(), any())).thenReturn(operation);
SyncOperationStatus status = mock(SyncOperationStatus.class);
when(operationToSyncOperationStatus.convert(operation)).thenReturn(status);
assertEquals(status, ThreadBasedUserCrnProvider.doAs(USER_CRN, () -> underTest.synchronizeAllUsers(request)));
UserSyncRequestFilter userSyncFilter = new UserSyncRequestFilter(users, machineUsers, Optional.empty());
verify(userSyncService, times(1)).synchronizeUsersWithCustomPermissionCheck(ACCOUNT_ID, USER_CRN, environments, userSyncFilter, WorkloadCredentialsUpdateType.FORCE_UPDATE, AuthorizationResourceAction.DESCRIBE_ENVIRONMENT);
}
use of com.sequenceiq.freeipa.service.freeipa.user.UserSyncRequestFilter in project cloudbreak by hortonworks.
the class UserV1Controller method synchronizeAllUsers.
@Override
@AccountIdNotNeeded
@CustomPermissionCheck
public SyncOperationStatus synchronizeAllUsers(SynchronizeAllUsersRequest request) {
String userCrn = checkActorCrn();
String accountId = determineAccountId(userCrn, request.getAccountId());
LOGGER.debug("synchronizeAllUsers() requested for account {}", accountId);
UserSyncRequestFilter userSyncFilter = new UserSyncRequestFilter(nullToEmpty(request.getUsers()), nullToEmpty(request.getMachineUsers()), getOptionalDeletedWorkloadUser(request.getDeletedWorkloadUsers()));
Operation syncOperation = userSyncService.synchronizeUsersWithCustomPermissionCheck(accountId, userCrn, nullToEmpty(request.getEnvironments()), userSyncFilter, request.getWorkloadCredentialsUpdateType(), AuthorizationResourceAction.DESCRIBE_ENVIRONMENT);
return checkOperationRejected(operationToSyncOperationStatus.convert(syncOperation));
}
use of com.sequenceiq.freeipa.service.freeipa.user.UserSyncRequestFilter in project cloudbreak by hortonworks.
the class UserV1Controller method synchronizeUser.
@Override
@CustomPermissionCheck
public SyncOperationStatus synchronizeUser(SynchronizeUserRequest request) {
String userCrn = checkActorCrn();
String accountId = ThreadBasedUserCrnProvider.getAccountId();
LOGGER.debug("synchronizeUser() requested for user {} in account {}", userCrn, accountId);
Set<String> environmentCrnFilter = request == null ? Set.of() : nullToEmpty(request.getEnvironments());
Set<String> userCrnFilter = Set.of();
Set<String> machineUserCrnFilter = Set.of();
Crn crn = Crn.safeFromString(userCrn);
switch(crn.getResourceType()) {
case USER:
userCrnFilter = Set.of(userCrn);
break;
case MACHINE_USER:
machineUserCrnFilter = Set.of(userCrn);
break;
default:
throw new BadRequestException(String.format("UserCrn %s is not of resoure type USER or MACHINE_USER", userCrn));
}
UserSyncRequestFilter userSyncFilter = new UserSyncRequestFilter(userCrnFilter, machineUserCrnFilter, Optional.empty());
Operation syncOperation = userSyncService.synchronizeUsersWithCustomPermissionCheck(accountId, userCrn, environmentCrnFilter, userSyncFilter, WorkloadCredentialsUpdateType.UPDATE_IF_CHANGED, AuthorizationResourceAction.DESCRIBE_ENVIRONMENT);
return checkOperationRejected(operationToSyncOperationStatus.convert(syncOperation));
}
use of com.sequenceiq.freeipa.service.freeipa.user.UserSyncRequestFilter in project cloudbreak by hortonworks.
the class UserV1ControllerTest method synchronizeAllUsers.
@Test
void synchronizeAllUsers() {
Set<String> environments = Set.of(ENV_CRN);
Set<String> users = Set.of(USER_CRN);
Set<String> machineUsers = Set.of(MACHINE_USER_CRN);
SynchronizeAllUsersRequest request = new SynchronizeAllUsersRequest();
request.setEnvironments(environments);
request.setUsers(users);
request.setMachineUsers(machineUsers);
request.setWorkloadCredentialsUpdateType(WorkloadCredentialsUpdateType.FORCE_UPDATE);
Operation operation = mock(Operation.class);
when(userSyncService.synchronizeUsersWithCustomPermissionCheck(any(), any(), any(), any(), any(), any())).thenReturn(operation);
SyncOperationStatus status = mock(SyncOperationStatus.class);
when(operationToSyncOperationStatus.convert(operation)).thenReturn(status);
assertEquals(status, ThreadBasedUserCrnProvider.doAs(USER_CRN, () -> underTest.synchronizeAllUsers(request)));
UserSyncRequestFilter userSyncFilter = new UserSyncRequestFilter(users, machineUsers, Optional.empty());
verify(userSyncService, times(1)).synchronizeUsersWithCustomPermissionCheck(ACCOUNT_ID, USER_CRN, environments, userSyncFilter, WorkloadCredentialsUpdateType.FORCE_UPDATE, AuthorizationResourceAction.DESCRIBE_ENVIRONMENT);
}
Aggregations