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.PhoneListPanel.java

License:Open Source License

/**
 * Initialize the data view relevant to phone list.
 *///ww  w.  ja v  a2 s .c  o m
private void initialiseDataview() {
    dataContainer = new WebMarkupContainer("dataContainer");
    dataContainer.setOutputMarkupId(true);
    sessionPersonId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);

    /**
     * phone Provider for the pageable list.
     */
    phoneProvider = new ArkDataProvider<Phone, IStudyService>(studyService) {
        private static final long serialVersionUID = 1L;
        private List<Phone> listPhoneForSize;
        private List<Phone> listPhone;

        public int size() {
            try {
                if (sessionPersonId != null) {
                    person = studyService.getPerson(sessionPersonId);
                    containerForm.getModelObject().getPhoneVo().getPhone().setPerson(person);
                    listPhoneForSize = studyService.getPersonPhoneList(sessionPersonId,
                            containerForm.getModelObject().getPhoneVo().getPhone());
                    return listPhoneForSize.size();
                } else {
                    return 0;
                }

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

        public Iterator<Phone> iterator(int first, int count) {
            listPhone = studyService.pageablePersonPhoneList(sessionPersonId,
                    containerForm.getModelObject().getPhoneVo().getPhone(), first, count);
            return listPhone.iterator();
        }
    };
    /**
     * Subject phone provider for to include the subject id.
     */
    subjectPhoneProvider = new ArkDataProvider<PhoneSubjectVO, IStudyService>(studyService) {
        private static final long serialVersionUID = 1L;
        private List<Phone> listPhoneForSize;
        private List<Phone> listPhone;

        public int size() {
            try {
                if (sessionPersonId != null) {
                    person = studyService.getPerson(sessionPersonId);
                    containerForm.getModelObject().getPhoneVo().getPhone().setPerson(person);
                    listPhoneForSize = studyService.getPersonPhoneList(sessionPersonId,
                            containerForm.getModelObject().getPhoneVo().getPhone());
                    return listPhoneForSize.size();
                } else {
                    return 0;
                }

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

        public Iterator<PhoneSubjectVO> iterator(int first, int count) {
            listPhone = studyService.pageablePersonPhoneList(sessionPersonId,
                    containerForm.getModelObject().getPhoneVo().getPhone(), first, count);
            List<PhoneSubjectVO> phoneVoList = new ArrayList<PhoneSubjectVO>();
            for (Phone phone : listPhone) {
                String sessionSubjectUId = SecurityUtils.getSubject().getSession()
                        .getAttribute(au.org.theark.core.Constants.SUBJECTUID).toString();
                phoneVoList.add(new PhoneSubjectVO(phone, sessionSubjectUId));
            }
            return phoneVoList.iterator();
        }
    };

    phoneProvider.setModel(Model.of(containerForm.getModelObject().getPhoneVo().getPhone()));
    dataViewPhone = buildDataView(phoneProvider);
    dataViewPhoneSubject = buildDataViewWithStudySubjectID(subjectPhoneProvider);
    AjaxPagingNavigator pageNavigator = new AjaxPagingNavigator("phoneNavigator", dataViewPhone) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onAjaxEvent(AjaxRequestTarget target) {
            target.add(dataContainer);
        }
    };
    dataContainer.add(pageNavigator);

    List<IColumn<PhoneSubjectVO>> exportColumns = new ArrayList<IColumn<PhoneSubjectVO>>();
    exportColumns.add(new ExportableTextColumn<PhoneSubjectVO>(Model.of("Subject UID"), "subjectUID"));
    exportColumns.add(new ExportableTextColumn<PhoneSubjectVO>(Model.of("ID"), "id"));
    exportColumns.add(new ExportableTextColumn<PhoneSubjectVO>(Model.of("Area Code"), "areaCode"));
    exportColumns.add(new ExportableTextColumn<PhoneSubjectVO>(Model.of("Phone Number"), "phoneNumber"));
    exportColumns.add(new ExportableTextColumn<PhoneSubjectVO>(Model.of("Phone Type"), "phone.phoneType.name"));
    exportColumns
            .add(new ExportableTextColumn<PhoneSubjectVO>(Model.of("Phone Status"), "phone.phoneStatus.name"));
    exportColumns.add(new ExportableTextColumn<PhoneSubjectVO>(Model.of("Phone Valid From"), "validFrom"));
    exportColumns.add(new ExportableTextColumn<PhoneSubjectVO>(Model.of("Phone Valid To"), "validTo"));

    DataTable exportTable = new DataTable("datatable", exportColumns, dataViewPhoneSubject.getDataProvider(),
            iArkCommonService.getRowsPerPage());
    List<String> headers = new ArrayList<String>(0);
    headers.add("Subject UID:");
    headers.add("ID:");
    headers.add("Area Code:");
    headers.add("Phone Number:");
    headers.add("Phone Type:");
    headers.add("Phone Status:");
    headers.add("Phone Valid From:");
    headers.add("Phone Valid To:");

    String filename = sessionPersonId != null ? String.valueOf(sessionPersonId) + "_phoneNumberList"
            : "unknown" + "_phoneNumberList";
    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>(exportTable, headers, filename);
    toolbars.add(new Component[] { exportToolBar });
    dataContainer.add(toolbars);
    dataContainer.add(dataViewPhone);
    add(dataContainer);
}

From source file:au.org.theark.study.web.component.correspondence.CorrespondenceContainerPanel.java

License:Open Source License

@Override
protected WebMarkupContainer initialiseSearchPanel() {

    // get the person in context
    Long sessionPersonId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);

    // todo remove / evaluate unused code
    // String sessionPersonType = (String) SecurityUtils.getSubject().getSession().getAttribute(au.org.theark.core.Constants.PERSON_TYPE);

    try {// w  w w .  j  a v  a  2 s .  co  m
        // initialize the correspondence list

        Long studyId = (Long) SecurityUtils.getSubject().getSession()
                .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
        Study study = commonService.getStudy(studyId);

        Collection<Correspondences> personCorrespondenceList = new ArrayList<Correspondences>();
        // can be a subject or contact
        LinkSubjectStudy lss = null;

        if (sessionPersonId != null) {
            lss = studyService.getSubjectLinkedToStudy(sessionPersonId, study);
            containerForm.getModelObject().getCorrespondence().setLss(lss);
            //this would only serve as convenience and source of integrity break containerForm.getModelObject().getCorrespondence().setStudy(study);
            personCorrespondenceList = studyService.getCorrespondenceList(lss,
                    containerForm.getModelObject().getCorrespondence());
        }

        // add the corresponden\ce items related to the person if one found in session, or an empty list
        cpModel.getObject().setCorrespondenceList(personCorrespondenceList);
        searchPanel = new SearchPanel("searchPanel", feedBackPanel, pageableListView, arkCrudContainerVO);
        searchPanel.initialisePanel(cpModel);
        arkCrudContainerVO.getSearchPanelContainer().add(searchPanel);

    } catch (EntityNotFoundException ex) {
        ex.printStackTrace();
    } catch (ArkSystemException ex) {
        ex.printStackTrace();
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return arkCrudContainerVO.getSearchPanelContainer();
}

From source file:au.org.theark.study.web.component.correspondence.CorrespondenceContainerPanel.java

License:Open Source License

@Override
protected WebMarkupContainer initialiseSearchResults() {

    SearchResultListPanel searchResultPanel = new SearchResultListPanel("searchResults", containerForm,
            arkCrudContainerVO);/*from   ww w .  j a  va 2s  . c  o m*/

    iModel = new LoadableDetachableModel<Object>() {

        private static final long serialVersionUID = 1L;

        @Override
        protected Object load() {

            // get the personId in session and get the correspondenceList from the backend
            Collection<Correspondences> correspondenceList = new ArrayList<Correspondences>();
            Long sessionPersonId = (Long) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);

            Long studyId = (Long) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
            Study study = commonService.getStudy(studyId);

            LinkSubjectStudy lss = null;

            try {
                if (isActionPermitted()) {
                    if (sessionPersonId != null) {
                        lss = studyService.getSubjectLinkedToStudy(sessionPersonId, study);

                        //containerForm.getModelObject().getCorrespondence().setStudy(study);
                        correspondenceList = studyService.getCorrespondenceList(lss,
                                containerForm.getModelObject().getCorrespondence());
                    }
                }
            } catch (ArkSystemException ex) {
                ex.printStackTrace();
            } catch (EntityNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            pageableListView.removeAll();
            return correspondenceList;
        }
    };

    pageableListView = searchResultPanel.buildPageableListView(iModel);
    pageableListView.setReuseItems(true);
    PagingNavigator pageNavigator = new PagingNavigator("correspondenceNavigator", pageableListView);
    searchResultPanel.add(pageNavigator);
    searchResultPanel.add(pageableListView);
    arkCrudContainerVO.getSearchResultPanelContainer().add(searchResultPanel);

    return arkCrudContainerVO.getSearchResultPanelContainer();
}

From source file:au.org.theark.study.web.component.correspondence.form.DetailForm.java

License:Open Source License

private void initialiseOperatorDropDown() {

    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    Study study = iArkCommonService.getStudy(sessionStudyId);

    Collection<ArkUser> coll = studyService.lookupArkUser(study);
    List<ArkUser> list = new ArrayList<ArkUser>(coll);
    ChoiceRenderer<ArkUser> defaultRenderer = new ChoiceRenderer<ArkUser>("ldapUserName", "id");
    operatorChoice = new DropDownChoice<ArkUser>("correspondence.operator", list, defaultRenderer);
}

From source file:au.org.theark.study.web.component.correspondence.form.DetailForm.java

License:Open Source License

private void initBillableItemTypeDropDown() {

    BillableItemType billableItemType = new BillableItemType();
    Long studyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    billableItemType.setStudyId(studyId);
    List<BillableItemTypeStatus> billableItemTypeStatusses = iWorkTrackingService.getBillableItemTypeStatuses();

    for (BillableItemTypeStatus status : billableItemTypeStatusses) {
        if (au.org.theark.worktracking.util.Constants.BILLABLE_ITEM_TYPE_ACTIVE
                .equalsIgnoreCase(status.getName())) {
            billableItemType.setBillableItemTypeStatus(status);
            break;
        }//from   w w w  . j  av  a  2s .  c  om
    }

    List<BillableItemType> billableItemTypeList = iWorkTrackingService.searchBillableItemType(billableItemType);
    ChoiceRenderer defaultChoiceRenderer = new ChoiceRenderer(
            au.org.theark.worktracking.util.Constants.BIT_ITEM_NAME, Constants.ID);
    billableItemItemTypes = new DropDownChoice("billableItemType", billableItemTypeList, defaultChoiceRenderer);
}

From source file:au.org.theark.study.web.component.correspondence.form.DetailForm.java

License:Open Source License

private void initWorkRequestDropDown() {
    WorkRequest workRequest = new WorkRequest();
    Long studyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    workRequest.setStudyId(studyId);//from w  w  w. j  a  va  2s. c o m
    List<WorkRequestStatus> requestStatusList = iWorkTrackingService.getWorkRequestStatuses();
    for (WorkRequestStatus status : requestStatusList) {
        if ("Commenced".equalsIgnoreCase(status.getName())) {
            workRequest.setRequestStatus(status);
            break;
        }
    }
    List<WorkRequest> workRequestList = iWorkTrackingService.searchWorkRequest(workRequest);
    ChoiceRenderer defaultChoiceRenderer = new ChoiceRenderer(au.org.theark.worktracking.util.Constants.NAME,
            Constants.ID);
    billableItemWorkRequests = new DropDownChoice("workRequest", workRequestList, defaultChoiceRenderer);
}

From source file:au.org.theark.study.web.component.correspondence.form.DetailForm.java

License:Open Source License

@Override
protected void onSave(Form<CorrespondenceVO> containerForm, AjaxRequestTarget target) {

    CorrespondenceVO correspondenceVO = containerForm.getModelObject();

    if (correspondenceVO.getCorrespondence().getId() == null) {

        if ((correspondenceVO.getWorkRequest() == null && correspondenceVO.getBillableItemType() != null)) {
            this.error("Work request must be set if a billable item type is specified");
            processErrors(target);/*from www. ja v  a  2  s . c  o m*/
            return;
        }

        if (correspondenceVO.getWorkRequest() != null && correspondenceVO.getBillableItemType() == null) {
            this.error("Billable item type must be set if a work request is specified");
            processErrors(target);
            return;
        }
    }

    if (containerForm.getModelObject().getWorkRequest() != null
            && containerForm.getModelObject().getBillableItemType() != null) {
        BillableItem billableItem = createAutomatedBillableItem();
        containerForm.getModelObject().getCorrespondence().setBillableItem(billableItem);
    }

    Long personSessionId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);

    // get the person and set it on the correspondence object
    try {
        // set the Person in context
        //Person person = studyService.getPerson(personSessionId);

        // set the Study in context
        Long studyId = (Long) SecurityUtils.getSubject().getSession()
                .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
        Study study = iArkCommonService.getStudy(studyId);
        LinkSubjectStudy lss = studyService.getSubjectLinkedToStudy(personSessionId, study);
        containerForm.getModelObject().getCorrespondence().setLss(lss);
        //containerForm.getModelObject().getCorrespondence().setStudy(study);

        if (containerForm.getModelObject().getCorrespondence().getId() == null) {
            // store correspondence file attachment
            if (fileUploadField != null && fileUploadField.getFileUpload() != null) {
                FileUpload fileUpload = fileUploadField.getFileUpload();

                byte[] byteArray = fileUpload.getMD5();
                String checksum = getHex(byteArray);

                containerForm.getModelObject().getCorrespondence().setAttachmentPayload(fileUpload.getBytes());
                containerForm.getModelObject().getCorrespondence()
                        .setAttachmentFilename(fileUpload.getClientFileName());
                containerForm.getModelObject().getCorrespondence().setAttachmentChecksum(checksum);
            }

            // save
            studyService.create(containerForm.getModelObject().getCorrespondence());
            this.saveInformation();
            //this.info("Correspondence was successfully added and linked to subject: " + lss.getSubjectUID());
            processErrors(target);
        } else {
            // store correspondence file attachment
            String checksum = null;
            if (fileUploadField != null && fileUploadField.getFileUpload() != null) {
                // retrieve file and store as Blob in database
                FileUpload fileUpload = fileUploadField.getFileUpload();

                byte[] byteArray = fileUpload.getMD5();
                checksum = getHex(byteArray);

                containerForm.getModelObject().getCorrespondence().setAttachmentPayload(fileUpload.getBytes());
                containerForm.getModelObject().getCorrespondence()
                        .setAttachmentFilename(fileUpload.getClientFileName());
                //               containerForm.getModelObject().getCorrespondence().setAttachementChecksum(checksum);
            }

            try {
                studyService.update(containerForm.getModelObject().getCorrespondence(), checksum);
            } catch (ArkFileNotFoundException e) {
                this.error("The file could not be found.");
                ;
            }
            this.updateInformation();
            //this.info("Correspondence was successfully updated and linked to subject: " + lss.getSubjectUID());
            processErrors(target);
        }
        // invoke backend to persist the correspondence

        workTrackingContainer.setVisible(false);
        onSavePostProcess(target);
    } catch (EntityNotFoundException ex) {
        ex.printStackTrace();
    } catch (ArkSystemException ex) {
        ex.printStackTrace();
    }
}

From source file:au.org.theark.study.web.component.correspondence.form.DetailForm.java

License:Open Source License

/**
 * Create the automated billable item when user has selected the work request and billable item type.
 *///  w  w w.  j a v  a  2s.c  om
private BillableItem createAutomatedBillableItem() {
    // Create new billable Item
    BillableItem billableItem = new BillableItem();
    billableItem.setType(au.org.theark.worktracking.util.Constants.BILLABLE_ITEM_AUTOMATED);
    billableItem.setWorkRequest(containerForm.getModelObject().getWorkRequest());
    billableItem.setBillableItemType(containerForm.getModelObject().getBillableItemType());
    Long studyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    billableItem.setStudyId(studyId);
    billableItem.setQuantity(1d);
    billableItem.setItemCost(containerForm.getModelObject().getBillableItemType().getUnitPrice());
    billableItem.setTotalCost(BillableItemCostCalculator.calculateItemCost(billableItem));

    String subjectId = SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.SUBJECTUID).toString();
    billableItem.setDescription("Automated - Subject Id " + subjectId);
    billableItem.setInvoice(au.org.theark.worktracking.util.Constants.N);
    billableItem.setCommenceDate(containerForm.getModelObject().getCorrespondence().getDate());
    // Save newly created object
    iWorkTrackingService.createBillableItem(billableItem);

    // reset workrequest and billable item type
    containerForm.getModelObject().setWorkRequest(null);
    containerForm.getModelObject().setBillableItemType(null);

    return billableItem;
}

From source file:au.org.theark.study.web.component.correspondence.form.SearchForm.java

License:Open Source License

public SearchForm(String id, CompoundPropertyModel<CorrespondenceVO> model,
        PageableListView<Correspondences> listView, FeedbackPanel feedBackPanel,
        ArkCrudContainerVO arkCrudContainerVO) {
    super(id, model, feedBackPanel, arkCrudContainerVO);
    this.feedbackPanel = feedBackPanel;
    this.pageableListView = listView;
    Label generalTextLbl = new Label("generalLbl", new StringResourceModel("search.panel.text", new Model()));
    add(generalTextLbl);//from w  w w  . ja v  a2 s  . c  om
    // initialiseSearchForm();// See Ark-374, if in future we need it uncomment this and uncomment a section of code in the markup
    resetButton.setVisible(false);
    searchButton.setVisible(false);
    Long sessionPersonId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.PERSON_CONTEXT_ID);
    disableSearchForm(sessionPersonId, au.org.theark.core.Constants.MESSAGE_NO_SUBJECT_IN_CONTEXT);
}

From source file:au.org.theark.study.web.component.correspondence.form.SearchForm.java

License:Open Source License

private void initialiseOperatorDropDown() {

    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    Study study = iArkCommonService.getStudy(sessionStudyId);

    Collection<ArkUser> coll = studyService.lookupArkUser(study);
    List<ArkUser> list = new ArrayList<ArkUser>(coll);

    ChoiceRenderer<ArkUser> defaultRenderer = new ChoiceRenderer<ArkUser>("ldapUserName", "id");
    operatorChoice = new DropDownChoice<ArkUser>("correspondence.operator", list, defaultRenderer);
}