Search in sources :

Example 6 with RegisterUserRequest

use of com.hack23.cia.service.api.action.application.RegisterUserRequest in project cia by Hack23.

the class MainViewRegisterPageModContentFactoryImpl method createContent.

@Secured({ "ROLE_ANONYMOUS" })
@Override
public Layout createContent(final String parameters, final MenuBar menuBar, final Panel panel) {
    final VerticalLayout content = createPanelContent();
    final String pageId = getPageId(parameters);
    getMenuItemFactory().createMainPageMenuBar(menuBar);
    final VerticalLayout registerLayout = new VerticalLayout();
    registerLayout.setSizeFull();
    final Panel formPanel = new Panel();
    formPanel.setSizeFull();
    registerLayout.addComponent(formPanel);
    final FormLayout formContent = new FormLayout();
    formPanel.setContent(formContent);
    final RegisterUserRequest reqisterRequest = new RegisterUserRequest();
    reqisterRequest.setSessionId(RequestContextHolder.currentRequestAttributes().getSessionId());
    reqisterRequest.setUsername("");
    reqisterRequest.setEmail("");
    reqisterRequest.setCountry("");
    reqisterRequest.setUserpassword("");
    final ClickListener reqisterListener = new RegisterUserClickListener(reqisterRequest);
    getFormFactory().addRequestInputFormFields(formContent, reqisterRequest, RegisterUserRequest.class, AS_LIST, REGISTER, reqisterListener);
    final VerticalLayout overviewLayout = new VerticalLayout();
    overviewLayout.setSizeFull();
    content.addComponent(overviewLayout);
    content.setExpandRatio(overviewLayout, ContentRatio.LARGE);
    final ResponsiveRow grid = createGridLayout(overviewLayout);
    createRowComponent(grid, registerLayout, "Register a new user");
    panel.setCaption(NAME + "::" + CITIZEN_INTELLIGENCE_AGENCY_MAIN);
    getPageActionEventHelper().createPageEvent(ViewAction.VISIT_MAIN_VIEW, ApplicationEventGroup.USER, CommonsViews.MAIN_VIEW_NAME, parameters, pageId);
    return content;
}
Also used : FormLayout(com.vaadin.ui.FormLayout) Panel(com.vaadin.ui.Panel) RegisterUserRequest(com.hack23.cia.service.api.action.application.RegisterUserRequest) ResponsiveRow(com.jarektoro.responsivelayout.ResponsiveRow) VerticalLayout(com.vaadin.ui.VerticalLayout) RegisterUserClickListener(com.hack23.cia.web.impl.ui.application.views.pageclicklistener.RegisterUserClickListener) ClickListener(com.vaadin.ui.Button.ClickListener) RegisterUserClickListener(com.hack23.cia.web.impl.ui.application.views.pageclicklistener.RegisterUserClickListener) Secured(org.springframework.security.access.annotation.Secured)

Example 7 with RegisterUserRequest

use of com.hack23.cia.service.api.action.application.RegisterUserRequest in project cia by Hack23.

the class RegisterUserService method processService.

@Override
@Secured({ "ROLE_ANONYMOUS" })
public RegisterUserResponse processService(final RegisterUserRequest serviceRequest) {
    final RegisterUserResponse inputValidation = inputValidation(serviceRequest);
    if (inputValidation != null) {
        return inputValidation;
    }
    final CreateApplicationEventRequest eventRequest = createApplicationEventForService(serviceRequest);
    RegisterUserResponse response;
    final ApplicationConfiguration registeredUsersGetAdminConfig = applicationConfigurationService.checkValueOrLoadDefault("Registered User All get Role Admin", "Registered User All get Role Admin", ConfigurationGroup.AUTHORIZATION, RegisterUserService.class.getSimpleName(), "Register User Service", "Responsible for create of useraccounts", "registered.users.get.admin", "true");
    final UserAccount userNameExist = userDAO.findFirstByProperty(UserAccount_.username, serviceRequest.getUsername());
    final UserAccount userEmailExist = userDAO.findFirstByProperty(UserAccount_.email, serviceRequest.getEmail());
    final RuleResult passwordRuleResults = passwordValidator.validate(new PasswordData(serviceRequest.getUserpassword()));
    if (userEmailExist == null && userNameExist == null && passwordRuleResults.isValid()) {
        final UserAccount userAccount = new UserAccount();
        userAccount.setCountry(serviceRequest.getCountry());
        userAccount.setEmail(serviceRequest.getEmail());
        userAccount.setUsername(serviceRequest.getUsername());
        userAccount.setUserId(UUID.randomUUID().toString());
        userAccount.setUserpassword(passwordEncoder.encode(userAccount.getUserId() + ".uuid" + serviceRequest.getUserpassword()));
        userAccount.setNumberOfVisits(1);
        if (serviceRequest.getUserType() == null) {
            userAccount.setUserType(UserType.PRIVATE);
        } else {
            userAccount.setUserType(serviceRequest.getUserType());
        }
        userAccount.setUserEmailStatus(UserEmailStatus.UNKNOWN);
        userAccount.setUserLockStatus(UserLockStatus.UNLOCKED);
        userAccount.setCreatedDate(new Date());
        userDAO.persist(userAccount);
        if ("true".equals(registeredUsersGetAdminConfig.getPropertyValue())) {
            userAccount.setUserRole(UserRole.ADMIN);
        } else {
            userAccount.setUserRole(UserRole.USER);
        }
        final Collection<SimpleGrantedAuthority> authorities = new ArrayList<>();
        if (UserRole.ADMIN == userAccount.getUserRole()) {
            authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
        } else if (UserRole.USER == userAccount.getUserRole()) {
            authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
        }
        SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(userAccount, userAccount.getUserpassword(), authorities));
        eventRequest.setUserId(userAccount.getUserId());
        response = new RegisterUserResponse(ServiceResult.SUCCESS);
    } else {
        response = new RegisterUserResponse(ServiceResult.FAILURE);
        if (passwordRuleResults.isValid()) {
            response.setErrorMessage(RegisterUserResponse.ErrorMessage.USER_ALREADY_EXIST.toString());
            eventRequest.setErrorMessage(RegisterUserResponse.ErrorMessage.USER_ALREADY_EXIST.toString());
        } else {
            final String errorMessage = passwordValidator.getMessages(passwordRuleResults).toString();
            response.setErrorMessage(errorMessage);
            eventRequest.setErrorMessage(errorMessage);
        }
    }
    eventRequest.setApplicationMessage(response.getResult().toString());
    createApplicationEventService.processService(eventRequest);
    LOGGER.info("Event: {}", eventRequest);
    return response;
}
Also used : ArrayList(java.util.ArrayList) RuleResult(org.passay.RuleResult) UsernamePasswordAuthenticationToken(org.springframework.security.authentication.UsernamePasswordAuthenticationToken) Date(java.util.Date) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) PasswordData(org.passay.PasswordData) RegisterUserResponse(com.hack23.cia.service.api.action.application.RegisterUserResponse) CreateApplicationEventRequest(com.hack23.cia.service.api.action.application.CreateApplicationEventRequest) ApplicationConfiguration(com.hack23.cia.model.internal.application.system.impl.ApplicationConfiguration) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Secured(org.springframework.security.access.annotation.Secured)

Example 8 with RegisterUserRequest

use of com.hack23.cia.service.api.action.application.RegisterUserRequest in project cia by Hack23.

the class ManageUserAccountServiceITest method manageUserAccountSuccessLockTest.

@Test
public void manageUserAccountSuccessLockTest() 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.LOCK);
    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.LOCKED);
}
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 9 with RegisterUserRequest

use of com.hack23.cia.service.api.action.application.RegisterUserRequest in project cia by Hack23.

the class ManageUserAccountServiceITest method manageUserAccountSuccessDeleteTest.

@Test
public void manageUserAccountSuccessDeleteTest() 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.DELETE);
    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(0, allByAfterDelete.size());
    final DataContainer<ApplicationActionEvent, Long> eventContainer = applicationManager.getDataContainer(ApplicationActionEvent.class);
    final List<ApplicationActionEvent> events = eventContainer.getAllBy(ApplicationActionEvent_.userId, firstCreatedUsed.get(0).getUserId());
    assertEquals(0, events.size());
    final DataContainer<ApplicationSession, Serializable> sessionContainer = applicationManager.getDataContainer(ApplicationSession.class);
    final List<ApplicationSession> sessions = sessionContainer.getAllBy(ApplicationSession_.userId, firstCreatedUsed.get(0).getUserId());
    assertEquals(0, sessions.size());
}
Also used : ApplicationSession(com.hack23.cia.model.internal.application.system.impl.ApplicationSession) Serializable(java.io.Serializable) RegisterUserRequest(com.hack23.cia.service.api.action.application.RegisterUserRequest) ApplicationActionEvent(com.hack23.cia.model.internal.application.system.impl.ApplicationActionEvent) CreateApplicationSessionRequest(com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest) 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 10 with RegisterUserRequest

use of com.hack23.cia.service.api.action.application.RegisterUserRequest in project cia by Hack23.

the class LoginServiceITest method serviceLoginRequestSuccessTest.

/**
 * Service login request success test.
 *
 * @throws Exception
 *             the exception
 */
@Test
@PerfTest(threads = 2, duration = 4000, warmUp = 1500)
@Required(max = 2500, average = 2000, percentile95 = 2200, throughput = 1)
public void serviceLoginRequestSuccessTest() throws Exception {
    final CreateApplicationSessionRequest createApplicationSesstion = createApplicationSesstionWithRoleAnonymous();
    final RegisterUserRequest serviceRequest = new RegisterUserRequest();
    serviceRequest.setCountry("Sweden");
    serviceRequest.setUsername(UUID.randomUUID().toString());
    serviceRequest.setEmail(serviceRequest.getUsername() + "@email.com");
    serviceRequest.setUserpassword("Userpassword1!");
    serviceRequest.setUserType(UserType.PRIVATE);
    serviceRequest.setSessionId(createApplicationSesstion.getSessionId());
    final RegisterUserResponse response = (RegisterUserResponse) applicationManager.service(serviceRequest);
    assertNotNull("Expect a result", response);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, response.getResult());
    final DataContainer<UserAccount, Long> dataContainer = applicationManager.getDataContainer(UserAccount.class);
    final List<UserAccount> allBy = dataContainer.getAllBy(UserAccount_.username, serviceRequest.getUsername());
    assertEquals(1, allBy.size());
    final LoginRequest loginRequest = new LoginRequest();
    loginRequest.setEmail(serviceRequest.getEmail());
    loginRequest.setSessionId(serviceRequest.getSessionId());
    loginRequest.setUserpassword(serviceRequest.getUserpassword());
    final LoginResponse loginResponse = (LoginResponse) applicationManager.service(loginRequest);
    assertNotNull("Expect a result", loginResponse);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, loginResponse.getResult());
}
Also used : LoginResponse(com.hack23.cia.service.api.action.application.LoginResponse) CreateApplicationSessionRequest(com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest) RegisterUserRequest(com.hack23.cia.service.api.action.application.RegisterUserRequest) RegisterUserResponse(com.hack23.cia.service.api.action.application.RegisterUserResponse) LoginRequest(com.hack23.cia.service.api.action.application.LoginRequest) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Required(org.databene.contiperf.Required) PerfTest(org.databene.contiperf.PerfTest) Test(org.junit.Test) AbstractServiceFunctionalIntegrationTest(com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest) PerfTest(org.databene.contiperf.PerfTest)

Aggregations

RegisterUserRequest (com.hack23.cia.service.api.action.application.RegisterUserRequest)16 RegisterUserResponse (com.hack23.cia.service.api.action.application.RegisterUserResponse)15 UserAccount (com.hack23.cia.model.internal.application.user.impl.UserAccount)14 CreateApplicationSessionRequest (com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest)14 AbstractServiceFunctionalIntegrationTest (com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest)14 Test (org.junit.Test)14 PerfTest (org.databene.contiperf.PerfTest)11 LoginRequest (com.hack23.cia.service.api.action.application.LoginRequest)7 LoginResponse (com.hack23.cia.service.api.action.application.LoginResponse)7 Required (org.databene.contiperf.Required)5 ManageUserAccountRequest (com.hack23.cia.service.api.action.admin.ManageUserAccountRequest)3 ManageUserAccountResponse (com.hack23.cia.service.api.action.admin.ManageUserAccountResponse)3 LogoutRequest (com.hack23.cia.service.api.action.application.LogoutRequest)3 ServiceResponse (com.hack23.cia.service.api.action.common.ServiceResponse)3 CreateApplicationEventRequest (com.hack23.cia.service.api.action.application.CreateApplicationEventRequest)2 SetGoogleAuthenticatorCredentialRequest (com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialRequest)2 Secured (org.springframework.security.access.annotation.Secured)2 ApplicationActionEvent (com.hack23.cia.model.internal.application.system.impl.ApplicationActionEvent)1 ApplicationConfiguration (com.hack23.cia.model.internal.application.system.impl.ApplicationConfiguration)1 ApplicationSession (com.hack23.cia.model.internal.application.system.impl.ApplicationSession)1