Search in sources :

Example 1 with ManageUserAccountResponse

use of com.hack23.cia.service.api.action.admin.ManageUserAccountResponse in project cia by Hack23.

the class ManageUserAccountServiceITest method manageUserAccountSuccessUnLockTest.

@Test
public void manageUserAccountSuccessUnLockTest() throws Exception {
    setAuthenticatedAnonymousUser();
    final CreateApplicationSessionRequest createSessionRequest = createTestApplicationSession();
    final RegisterUserRequest createAccountRequest = new RegisterUserRequest();
    createAccountRequest.setCountry("Sweden");
    createAccountRequest.setUsername(UUID.randomUUID().toString());
    createAccountRequest.setEmail(createAccountRequest.getUsername() + "@email.com");
    createAccountRequest.setUserpassword("Userpassword1!");
    createAccountRequest.setUserType(UserType.PRIVATE);
    createAccountRequest.setSessionId(createSessionRequest.getSessionId());
    final RegisterUserResponse response = (RegisterUserResponse) applicationManager.service(createAccountRequest);
    assertNotNull("Expect a result", response);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, response.getResult());
    setAuthenticatedAdminuser();
    final DataContainer<UserAccount, Long> userContainer = applicationManager.getDataContainer(UserAccount.class);
    final List<UserAccount> firstCreatedUsed = userContainer.getAllBy(UserAccount_.username, createAccountRequest.getUsername());
    assertEquals(1, firstCreatedUsed.size());
    final ManageUserAccountRequest deleteAccountRequest = new ManageUserAccountRequest();
    deleteAccountRequest.setSessionId(createSessionRequest.getSessionId());
    deleteAccountRequest.setAccountOperation(AccountOperation.UNLOCK);
    deleteAccountRequest.setUserAcountId(firstCreatedUsed.get(0).getUserId());
    final ManageUserAccountResponse deleteAccountResponse = (ManageUserAccountResponse) applicationManager.service(deleteAccountRequest);
    assertNotNull(EXPECT_A_RESULT, deleteAccountResponse);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, deleteAccountResponse.getResult());
    final List<UserAccount> allByAfterDelete = userContainer.getAllBy(UserAccount_.username, createAccountRequest.getUsername());
    assertEquals(1, allByAfterDelete.size());
    assertEquals(allByAfterDelete.get(0).getUserLockStatus(), UserLockStatus.UNLOCKED);
}
Also used : CreateApplicationSessionRequest(com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest) RegisterUserRequest(com.hack23.cia.service.api.action.application.RegisterUserRequest) ManageUserAccountRequest(com.hack23.cia.service.api.action.admin.ManageUserAccountRequest) RegisterUserResponse(com.hack23.cia.service.api.action.application.RegisterUserResponse) ManageUserAccountResponse(com.hack23.cia.service.api.action.admin.ManageUserAccountResponse) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Test(org.junit.Test) AbstractServiceFunctionalIntegrationTest(com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest)

Example 2 with ManageUserAccountResponse

use of com.hack23.cia.service.api.action.admin.ManageUserAccountResponse in project cia by Hack23.

the class ManageUserAccountServiceITest method manageUserAccountFailureTest.

@Test
public void manageUserAccountFailureTest() throws Exception {
    final CreateApplicationSessionRequest createSessionRequest = createTestApplicationSession();
    final ManageUserAccountRequest serviceRequest = new ManageUserAccountRequest();
    serviceRequest.setSessionId(createSessionRequest.getSessionId());
    final ManageUserAccountResponse response = (ManageUserAccountResponse) applicationManager.service(serviceRequest);
    assertNotNull(EXPECT_A_RESULT, response);
    assertEquals(ServiceResult.FAILURE, response.getResult());
    assertEquals("accountOperation must not be null, userAcountId must not be null", response.getErrorMessage());
}
Also used : CreateApplicationSessionRequest(com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest) ManageUserAccountRequest(com.hack23.cia.service.api.action.admin.ManageUserAccountRequest) ManageUserAccountResponse(com.hack23.cia.service.api.action.admin.ManageUserAccountResponse) Test(org.junit.Test) AbstractServiceFunctionalIntegrationTest(com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest)

Example 3 with ManageUserAccountResponse

use of com.hack23.cia.service.api.action.admin.ManageUserAccountResponse in project cia by Hack23.

the class ManageUserAccountService method initUserCommandMap.

/**
 * Inits the user command map.
 */
@PostConstruct
public void initUserCommandMap() {
    userCommandMap.put(ManageUserAccountRequest.AccountOperation.DELETE, new UserCommand() {

        @Override
        public ManageUserAccountResponse execute(UserAccount account) {
            removeDataManager.removeUserAccountApplicationHistory(account.getUserId());
            userDAO.delete(account);
            return new ManageUserAccountResponse(ServiceResult.SUCCESS);
        }
    });
    userCommandMap.put(ManageUserAccountRequest.AccountOperation.UNLOCK, new UserCommand() {

        @Override
        public ManageUserAccountResponse execute(UserAccount account) {
            account.setUserLockStatus(UserLockStatus.UNLOCKED);
            userDAO.persist(account);
            return new ManageUserAccountResponse(ServiceResult.SUCCESS);
        }
    });
    userCommandMap.put(ManageUserAccountRequest.AccountOperation.LOCK, new UserCommand() {

        @Override
        public ManageUserAccountResponse execute(UserAccount account) {
            account.setUserLockStatus(UserLockStatus.LOCKED);
            userDAO.persist(account);
            return new ManageUserAccountResponse(ServiceResult.SUCCESS);
        }
    });
}
Also used : ManageUserAccountResponse(com.hack23.cia.service.api.action.admin.ManageUserAccountResponse) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) PostConstruct(javax.annotation.PostConstruct)

Example 4 with ManageUserAccountResponse

use of com.hack23.cia.service.api.action.admin.ManageUserAccountResponse in project cia by Hack23.

the class ManageUserAccountService method processService.

@Override
@Secured({ "ROLE_ADMIN" })
public ManageUserAccountResponse processService(final ManageUserAccountRequest serviceRequest) {
    final ManageUserAccountResponse inputValidation = inputValidation(serviceRequest);
    if (inputValidation != null) {
        return inputValidation;
    }
    final CreateApplicationEventRequest eventRequest = createApplicationEventForService(serviceRequest);
    final UserAccount userAccount = getUserAccountFromSecurityContext();
    if (userAccount != null) {
        eventRequest.setUserId(userAccount.getUserId());
    }
    ManageUserAccountResponse response;
    final Set<ConstraintViolation<ManageUserAccountRequest>> requestConstraintViolations = validateRequest(serviceRequest);
    if (!requestConstraintViolations.isEmpty()) {
        response = new ManageUserAccountResponse(ServiceResult.FAILURE);
        final String errorMessage = requestConstraintViolations.stream().sorted((p1, p2) -> p1.getPropertyPath().toString().compareTo(p2.getPropertyPath().toString())).map(p -> p.getPropertyPath().toString() + " " + p.getMessage()).collect(Collectors.joining(", "));
        response.setErrorMessage(errorMessage);
        eventRequest.setErrorMessage(errorMessage);
    } else {
        response = performOperation(serviceRequest, eventRequest);
    }
    createApplicationEventService.processService(eventRequest);
    return response;
}
Also used : ApplicationOperationType(com.hack23.cia.model.internal.application.system.impl.ApplicationOperationType) BusinessService(com.hack23.cia.service.impl.action.common.BusinessService) ManageUserAccountRequest(com.hack23.cia.service.api.action.admin.ManageUserAccountRequest) ServiceResult(com.hack23.cia.service.api.action.common.ServiceResponse.ServiceResult) EnumMap(java.util.EnumMap) ApplicationEventGroup(com.hack23.cia.model.internal.application.system.impl.ApplicationEventGroup) RemoveDataManager(com.hack23.cia.service.data.api.RemoveDataManager) Set(java.util.Set) Autowired(org.springframework.beans.factory.annotation.Autowired) Collectors(java.util.stream.Collectors) Secured(org.springframework.security.access.annotation.Secured) AbstractBusinessServiceImpl(com.hack23.cia.service.impl.action.common.AbstractBusinessServiceImpl) ManageUserAccountResponse(com.hack23.cia.service.api.action.admin.ManageUserAccountResponse) Propagation(org.springframework.transaction.annotation.Propagation) UserLockStatus(com.hack23.cia.model.internal.application.user.impl.UserLockStatus) Service(org.springframework.stereotype.Service) Map(java.util.Map) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) PostConstruct(javax.annotation.PostConstruct) UserAccount_(com.hack23.cia.model.internal.application.user.impl.UserAccount_) CreateApplicationEventRequest(com.hack23.cia.service.api.action.application.CreateApplicationEventRequest) ConstraintViolation(javax.validation.ConstraintViolation) UserDAO(com.hack23.cia.service.data.api.UserDAO) Transactional(org.springframework.transaction.annotation.Transactional) ConstraintViolation(javax.validation.ConstraintViolation) ManageUserAccountResponse(com.hack23.cia.service.api.action.admin.ManageUserAccountResponse) CreateApplicationEventRequest(com.hack23.cia.service.api.action.application.CreateApplicationEventRequest) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Secured(org.springframework.security.access.annotation.Secured)

Example 5 with ManageUserAccountResponse

use of com.hack23.cia.service.api.action.admin.ManageUserAccountResponse in project cia by Hack23.

the class ManageUserAccountService method performOperation.

/**
 * Perform operation.
 *
 * @param serviceRequest
 *            the service request
 * @param eventRequest
 *            the event request
 * @return the manage user account response
 */
private ManageUserAccountResponse performOperation(final ManageUserAccountRequest serviceRequest, final CreateApplicationEventRequest eventRequest) {
    ManageUserAccountResponse response;
    eventRequest.setElementId(serviceRequest.getUserAcountId());
    eventRequest.setApplicationMessage(serviceRequest.getAccountOperation().toString());
    final UserAccount accountToModify = userDAO.findFirstByProperty(UserAccount_.userId, serviceRequest.getUserAcountId());
    final UserCommand userCommand = userCommandMap.get(serviceRequest.getAccountOperation());
    if (accountToModify != null && userCommand != null) {
        response = userCommand.execute(accountToModify);
    } else {
        response = new ManageUserAccountResponse(ServiceResult.FAILURE);
    }
    eventRequest.setApplicationMessage(response.getResult().toString());
    return response;
}
Also used : ManageUserAccountResponse(com.hack23.cia.service.api.action.admin.ManageUserAccountResponse) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount)

Aggregations

ManageUserAccountResponse (com.hack23.cia.service.api.action.admin.ManageUserAccountResponse)7 UserAccount (com.hack23.cia.model.internal.application.user.impl.UserAccount)6 ManageUserAccountRequest (com.hack23.cia.service.api.action.admin.ManageUserAccountRequest)5 CreateApplicationSessionRequest (com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest)4 AbstractServiceFunctionalIntegrationTest (com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest)4 Test (org.junit.Test)4 RegisterUserRequest (com.hack23.cia.service.api.action.application.RegisterUserRequest)3 RegisterUserResponse (com.hack23.cia.service.api.action.application.RegisterUserResponse)3 PostConstruct (javax.annotation.PostConstruct)2 ApplicationActionEvent (com.hack23.cia.model.internal.application.system.impl.ApplicationActionEvent)1 ApplicationEventGroup (com.hack23.cia.model.internal.application.system.impl.ApplicationEventGroup)1 ApplicationOperationType (com.hack23.cia.model.internal.application.system.impl.ApplicationOperationType)1 ApplicationSession (com.hack23.cia.model.internal.application.system.impl.ApplicationSession)1 UserAccount_ (com.hack23.cia.model.internal.application.user.impl.UserAccount_)1 UserLockStatus (com.hack23.cia.model.internal.application.user.impl.UserLockStatus)1 CreateApplicationEventRequest (com.hack23.cia.service.api.action.application.CreateApplicationEventRequest)1 ServiceResult (com.hack23.cia.service.api.action.common.ServiceResponse.ServiceResult)1 RemoveDataManager (com.hack23.cia.service.data.api.RemoveDataManager)1 UserDAO (com.hack23.cia.service.data.api.UserDAO)1 AbstractBusinessServiceImpl (com.hack23.cia.service.impl.action.common.AbstractBusinessServiceImpl)1