Example usage for org.apache.shiro SecurityUtils getSubject

List of usage examples for org.apache.shiro SecurityUtils getSubject

Introduction

In this page you can find the example usage for org.apache.shiro SecurityUtils getSubject.

Prototype

public static Subject getSubject() 

Source Link

Document

Returns the currently accessible Subject available to the calling code depending on runtime environment.

Usage

From source file:au.org.theark.study.web.component.contact.AddressListPanel.java

License:Open Source License

/**
 * Initialize the data view relevant to phone list.
 *//*from  ww w .  j av  a2s. c  o  m*/
private void initialiseDataview() {
    sessionPersonId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);
    /**
     * This is the address provider to the page able view.
     */
    addressProvider = new ArkDataProvider<Address, IStudyService>(studyService) {
        private static final long serialVersionUID = 1L;
        private List<Address> listAddress;
        private List<Address> listAddressForSize;

        public int size() {
            try {
                if (sessionPersonId != null) {
                    person = studyService.getPerson(sessionPersonId);
                    containerForm.getModelObject().getAddressVo().getAddress().setPerson(person);
                    listAddressForSize = studyService.getPersonAddressList(sessionPersonId,
                            containerForm.getModelObject().getAddressVo().getAddress());
                    return listAddressForSize.size();

                } else {
                    return 0;
                }

            } catch (ArkSystemException e) {
                e.printStackTrace();
                return 0;
            } catch (EntityNotFoundException e) {
                e.printStackTrace();
                return 0;
            }
        }

        public Iterator<? extends Address> iterator(int first, int count) {
            listAddress = studyService.pageablePersonAddressList(sessionPersonId,
                    containerForm.getModelObject().getAddressVo().getAddress(), first, count);
            return listAddress.iterator();
        }
    };
    /**
     * This is the address provider with subject uid. for export report.
     */
    addressSubjectProvider = new ArkDataProvider<AddressSubjectVO, IStudyService>(studyService) {
        private static final long serialVersionUID = 1L;
        private List<Address> listAddress;
        private List<Address> listAddressForSize;

        public int size() {
            try {
                if (sessionPersonId != null) {
                    person = studyService.getPerson(sessionPersonId);
                    containerForm.getModelObject().getAddressVo().getAddress().setPerson(person);
                    listAddressForSize = studyService.getPersonAddressList(sessionPersonId,
                            containerForm.getModelObject().getAddressVo().getAddress());
                    return listAddressForSize.size();
                } else {

                    return 0;
                }

            } catch (ArkSystemException e) {
                e.printStackTrace();
                return 0;
            } catch (EntityNotFoundException e) {
                e.printStackTrace();
                return 0;
            }
        }

        public Iterator<? extends AddressSubjectVO> iterator(int first, int count) {
            listAddress = studyService.pageablePersonAddressList(sessionPersonId,
                    containerForm.getModelObject().getAddressVo().getAddress(), first, count);
            List<AddressSubjectVO> addressVoList = new ArrayList<AddressSubjectVO>();
            for (Address address : listAddress) {
                String sessionSubjectUId = SecurityUtils.getSubject().getSession()
                        .getAttribute(au.org.theark.core.Constants.SUBJECTUID).toString();
                addressVoList.add(new AddressSubjectVO(address, sessionSubjectUId));
            }
            return addressVoList.iterator();
        }
    };

    addressProvider.setModel(Model.of(containerForm.getModelObject().getAddressVo().getAddress()));
    dataViewAddress = buildDataView(addressProvider);
    dataViewAddress.setItemsPerPage(iArkCommonService.getRowsPerPage());
    dataViewAddressSubjectVO = buildDataViewWithSubjectStudyID(addressSubjectProvider);
    AjaxPagingNavigator pageNavigator = new AjaxPagingNavigator("addressNavigator", dataViewAddress);
    add(pageNavigator);

    List<IColumn<AddressSubjectVO>> columns = new ArrayList<IColumn<AddressSubjectVO>>();
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("Subjetc UID"), "subjectUID"));
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("Street Address"), "streetAddress"));
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("City"), "city"));
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("State"), "state.name"));
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("Post Code"), "postCode"));
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("Country"), "country.name"));
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("Address Type"), "addressType.name"));
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("DateReceived"), "dateReceived"));
    columns.add(new ExportableTextColumn<AddressSubjectVO>(Model.of("Preferred Mailing Address"),
            "preferredMailingAddress"));

    DataTable table = new DataTable("datatable", columns, dataViewAddressSubjectVO.getDataProvider(),
            iArkCommonService.getRowsPerPage());
    List<String> headers = new ArrayList<String>(0);
    headers.add("Subject UID:");
    headers.add("Street Address:");
    headers.add("City:");
    headers.add("State:");
    headers.add("Post Code:");
    headers.add("Country:");
    headers.add("Address Type:");
    headers.add("DateReceived:");
    headers.add("Preferred Mailing Address:");

    String filename = sessionPersonId != null ? String.valueOf(sessionPersonId) + "_addressList"
            : "unknown" + "_addressList";
    RepeatingView toolbars = new RepeatingView("toolbars");
    //Disable the tool bar if session person not exsists.
    if (sessionPersonId == null) {
        toolbars.setEnabled(false);
    } else {
        toolbars.setEnabled(true);
    }
    ExportToolbar<String> exportToolBar = new ExportToolbar<String>(table, headers, filename);
    toolbars.add(new Component[] { exportToolBar });
    add(toolbars);
    add(dataViewAddress);

}

From source file:au.org.theark.study.web.component.contact.ContactContainerPanel.java

License:Open Source License

/**
 *  Initialize phone button./*from   www  .j a va 2  s . c o  m*/
 */
private void initialiseNewPhoneButton() {
    newPhoneButton = new ArkBusyAjaxButton("newPhoneButton") {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            boolean isVisible = true;
            String sessionSubjectUID = (String) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.SUBJECTUID);
            isVisible = (ArkPermissionHelper.isActionPermitted(au.org.theark.core.Constants.NEW)
                    && sessionSubjectUID != null);
            return isVisible;
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            Session.get().cleanupFeedbackMessages();
            target.add(feedBackPanel);
            onPhoneNew(target);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            this.error("An unexpected error occurred. Unable to proceed with new.");
        }
    };
    newPhoneButton.setDefaultFormProcessing(false);
    arkCrudContainerVO.getSearchResultPanelContainer().add(newPhoneButton);
}

From source file:au.org.theark.study.web.component.contact.ContactContainerPanel.java

License:Open Source License

/**
 *  Initialize address button.//from w  ww.  j  a va 2s .  co m
 */
private void initialiseNewAddressButton() {
    newAddressButton = new ArkBusyAjaxButton("newAddressButton") {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            boolean isVisible = true;
            String sessionSubjectUID = (String) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.SUBJECTUID);
            isVisible = (ArkPermissionHelper.isActionPermitted(au.org.theark.core.Constants.NEW)
                    && sessionSubjectUID != null);
            return isVisible;
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            Session.get().cleanupFeedbackMessages();
            target.add(feedBackPanel);
            onAddressNew(target);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            this.error("An unexpected error occurred. Unable to proceed with new.");
        }
    };
    newAddressButton.setDefaultFormProcessing(false);
    arkCrudContainerVO.getSearchResultPanelContainer().add(newAddressButton);
}

From source file:au.org.theark.study.web.component.contact.ContactContainerPanel.java

License:Open Source License

/**
 *  Initialize email button./* w  w w. j av a2 s. c o  m*/
 */
private void initialiseNewEmailButton() {
    newEmailButton = new ArkBusyAjaxButton("newEmailButton") {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            boolean isVisible = true;
            String sessionSubjectUID = (String) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.SUBJECTUID);
            isVisible = (ArkPermissionHelper.isActionPermitted(au.org.theark.core.Constants.NEW)
                    && sessionSubjectUID != null);
            return isVisible;
        }

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            Session.get().cleanupFeedbackMessages();
            target.add(feedBackPanel);
            onEmailNew(target);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            this.error("An unexpected error occurred. Unable to proceed with new.");
        }
    };
    newEmailButton.setDefaultFormProcessing(false);
    arkCrudContainerVO.getSearchResultPanelContainer().add(newEmailButton);
}

From source file:au.org.theark.study.web.component.contact.ContactContainerPanel.java

License:Open Source License

/**
 * <pre> set the form details before showing to the user.
 *//*from  w w w .  j a v  a  2s  .  com*/
private void preSetAdddressFormBeforeVisible() {
    AddressVO addressVo = cpModel.getObject().getAddressVo();
    if (addressVo.getAddress() == null || addressVo.getAddress().getCountry() == null) {
        // final List<Country> countryList = iArkCommonService.getCountries();
        setDefaultCountry();
    }

    // Force new address to be preferred if totally new address
    Long sessionPersonId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);
    try {
        addressVo.setAddresses(studyService.getPersonAddressList(sessionPersonId, null));
    } catch (ArkSystemException e) {
        e.printStackTrace();
    }
    if (addressVo.getAddresses().size() == 0) {
        addressVo.getAddress().setPreferredMailingAddress(true);
    }
    updateDetailFormPrerender(addressVo.getAddress());

}

From source file:au.org.theark.study.web.component.contact.ContactContainerPanel.java

License:Open Source License

/**
 * //  w  w  w .  j  av  a  2 s. c  o  m
 * @return
 */
protected boolean prerenderContextCheck() {
    // Get the Study, SubjectUID and ArkModule from Context
    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    String sessionSubjectUID = (String) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.SUBJECTUID);
    Long sessionArkModuleId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.ARK_MODULE_KEY);
    boolean contextLoaded = false;
    if ((sessionStudyId != null) && (sessionSubjectUID != null)) {
        LinkSubjectStudy linkSubjectStudy = null;
        ArkModule arkModule = null;
        Study study = null;
        try {
            study = iArkCommonService.getStudy(sessionStudyId);
            linkSubjectStudy = iArkCommonService.getSubjectByUID(sessionSubjectUID, study);
            arkModule = iArkCommonService.getArkModuleById(sessionArkModuleId);
            // cpModel.getObject().setArkModule(arkModule);
            if (study != null && linkSubjectStudy != null && arkModule != null) {
                contextLoaded = true;
            }
        } catch (EntityNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    return contextLoaded;
}

From source file:au.org.theark.study.web.component.contact.ContactContainerPanel.java

License:Open Source License

/**
 * <pre> set the form details before showing to the user.
 *///from  ww w  . j ava  2 s  . c o m
private void preSetPhoneFormBeforeVisible() {
    PhoneVO phoneVo = cpModel.getObject().getPhoneVo();

    // Force new address to be preferred if totally new address
    Long sessionPersonId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);
    try {
        phoneVo.setPhoneList(studyService.getPersonPhoneList(sessionPersonId, null));
    } catch (ArkSystemException e) {
        e.printStackTrace();
    }
    if (phoneVo.getPhoneList().size() == 0) {
        phoneVo.getPhone().setPreferredPhoneNumber(true);
    }
}

From source file:au.org.theark.study.web.component.contact.ContactContainerPanel.java

License:Open Source License

private void preSetEmailFormBeforeVisible() {
    EmailAccountVo emailVo = cpModel.getObject().getEmailAccountVo();

    // Force new address to be preferred if totally new address
    Long sessionPersonId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);
    try {/*from  ww w.ja  v a 2s  . c o  m*/
        emailVo.setEmailAccountList(studyService.getPersonEmailAccountList(sessionPersonId));
    } catch (ArkSystemException e) {
        e.printStackTrace();
    }
    if (emailVo.getEmailAccountList().size() == 0) {
        emailVo.getEmailAccount().setPrimaryAccount(true);
    }
}

From source file:au.org.theark.study.web.component.contact.form.AddressDetailForm.java

License:Open Source License

@Override
protected void onSave(Form<ContactVO> containerForm, AjaxRequestTarget target) {
    Long personSessionId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);
    StringBuffer feedBackMessageStr = new StringBuffer();
    // Get the person and set it on the AddressVO.
    try {/*  w w  w  . j ava  2s . c om*/
        Person person = iStudyService.getPerson(personSessionId);

        List<State> statesForThisCountry = iArkCommonService
                .getStates(containerForm.getModelObject().getAddressVo().getAddress().getCountry());
        if (statesForThisCountry.isEmpty()) {
            containerForm.getModelObject().getAddressVo().getAddress().setState(null);
        } else {
            containerForm.getModelObject().getAddressVo().getAddress().setOtherState(null);
        }

        WebMarkupContainer wmcStateSelector = (WebMarkupContainer) arkCrudContainerVO.getDetailPanelContainer()
                .get("addressDetailPanel").get("addressDetailsForm").get("addressDetailFormContainer")
                .get(Constants.STATE_SELECTOR_WMC);
        Label otherStateInvalidError = (Label) wmcStateSelector.get("addressVo.address.otherStateInvalidError");
        otherStateInvalidError.setVisible(false);

        containerForm.getModelObject().getAddressVo().getAddress().setPerson(person);
        if (containerForm.getModelObject().getAddressVo().getAddress().getId() == null) {
            if (containerForm.getModelObject().getAddressVo().getAddress().getPreferredMailingAddress()) {
                // Update any other preferredMailingAddresses to false
                iStudyService.setPreferredMailingAdressToFalse(person);
            }

            iStudyService.create(containerForm.getModelObject().getAddressVo().getAddress());
            this.saveInformation();
            //feedBackMessageStr.append("Address was successfully added and linked to Subject: ");
        } else {
            if (containerForm.getModelObject().getAddressVo().getAddress().getPreferredMailingAddress()) {
                // Update any other preferredMailingAddresses to false
                iStudyService.setPreferredMailingAdressToFalse(person);
            }

            iStudyService.update(containerForm.getModelObject().getAddressVo().getAddress());
            this.updateInformation();
            //feedBackMessageStr.append("Address was successfully updated and linked to Subject: ");
        }

        /*if (person.getFirstName() != null && person.getLastName() != null) {
           feedBackMessageStr.append(person.getFirstName() + " " + person.getLastName());
        }
        else {
           Long studyId = (Long) SecurityUtils.getSubject().getSession().getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
           Study study = iArkCommonService.getStudy(studyId);
           String uid = iArkCommonService.getSubject(person.getId(), study).getSubjectUID();
           feedBackMessageStr.append(uid);
        }
        this.info(feedBackMessageStr.toString());*/
        processErrors(target);
        onSavePostProcess(target);
        // Invoke backend to persist the AddressVO
    } catch (EntityNotFoundException e) {
        this.error(
                "The specified subject is not available any more in the system. Please re-do the operation.");
    } catch (ArkSystemException e) {
        this.error("A system error has occurred. Please contact the system administrator.");
    }
}

From source file:au.org.theark.study.web.component.contact.form.PhoneDetailForm.java

License:Open Source License

@Override
protected void onSave(Form<ContactVO> containerForm, AjaxRequestTarget target) {
    // Persist the phone number to the backend, associate the person in context with the phone object
    Long personSessionId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);
    // Get the person and set it on the Phone object.
    try {/*from   www. jav a2s .  com*/
        //boolean saveOk = true;
        Person person = studyService.getPerson(personSessionId);
        containerForm.getModelObject().getPhoneVo().getPhone().setPerson(person);
        //if (saveOk) {
        // Ok to save...
        String personType = (String) SecurityUtils.getSubject().getSession()
                .getAttribute(au.org.theark.core.Constants.PERSON_TYPE);
        if (personType != null
                && personType.equalsIgnoreCase(au.org.theark.core.Constants.PERSON_CONTEXT_TYPE_SUBJECT)) {
            Long studyId = (Long) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
            Study study = iArkCommonService.getStudy(studyId);
            LinkSubjectStudy subjectInContext = iArkCommonService.getSubject(personSessionId, study);// This is fetched basically to display the
            // message along with the Subject UID or Contact ID
            if (containerForm.getModelObject().getPhoneVo().getPhone().getId() == null) {
                if (containerForm.getModelObject().getPhoneVo().getPhone().getPreferredPhoneNumber()) {
                    // Update any other preferredPhoneNumber to false
                    studyService.setPreferredPhoneNumberToFalse(person);
                }
                studyService.create(containerForm.getModelObject().getPhoneVo().getPhone());
                this.saveInformation();
                //this.info("Phone number was added and linked to Subject UID: " + subjectInContext.getSubjectUID());
            } else {
                if (containerForm.getModelObject().getPhoneVo().getPhone().getPreferredPhoneNumber()) {
                    // Update any other preferredMailingAddresses to false
                    studyService.setPreferredPhoneNumberToFalse(person);
                }
                studyService.update(containerForm.getModelObject().getPhoneVo().getPhone());
                this.updateInformation();
                //this.info("Phone number was updated and linked to Subject UID: " + subjectInContext.getSubjectUID());
            }
        } else if (personType != null
                && personType.equalsIgnoreCase(au.org.theark.core.Constants.PERSON_CONTEXT_TYPE_CONTACT)) {
            // TODO: Contact Interface implementation
        }
        processErrors(target);
        onSavePostProcess(target);
        //}
        /*else {
           processErrors(target);
        }*/
    } catch (ArkUniqueException aue) {
        this.error(aue.getMessage());
    } catch (EntityNotFoundException e) {
        this.error("The Subject/Participant is no longer available in the system.");
    } catch (ArkSystemException e) {
        this.error("A system exception has occurred. Please contact the system administrator.");
    }
}