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.phenotypic.web.component.phenodataupload.form.SearchForm.java

License:Open Source License

public SearchForm(String id, CompoundPropertyModel<UploadVO> model, PageableListView<Upload> listView,
        FeedbackPanel feedBackPanel, ArkCrudContainerVO arkCrudContainerVO) {
    super(id, model, feedBackPanel, arkCrudContainerVO);
    this.cpmModel = model;
    this.listView = listView;
    initialiseFieldForm();/* ww  w. j  ava  2  s.  c o m*/

    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    disableSearchForm(sessionStudyId, "There is no study in context. Please select a study");
}

From source file:au.org.theark.phenotypic.web.component.phenodataupload.PhenoDataUploadContainerPanel.java

License:Open Source License

protected WebMarkupContainer initialiseSearchResults() {
    searchResultPanel = new SearchResultListPanel("searchResults", feedBackPanel, containerForm,
            arkCrudContainerVO);//w w w.  j a v  a 2s  .c om

    iModel = new LoadableDetachableModel<Object>() {
        private static final long serialVersionUID = 1L;

        @Override
        protected Object load() {
            // Return all Uploads for the Study in context
            java.util.Collection<Upload> studyUploads = new ArrayList<Upload>();
            Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);

            //if (isActionPermitted() && sessionStudyId != null) {  TODO we need so make sure permission logic only occurs at the highest possible level
            if (sessionStudyId != null) {
                Upload studyUpload = new Upload();
                studyUpload.setStudy(iArkCommonService.getStudy(sessionStudyId));

                studyUpload.setArkFunction(arkFunction);
                studyUploads = iArkCommonService.searchUploads(studyUpload);

            }
            listView.removeAll();
            return studyUploads;
        }
    };

    listView = searchResultPanel.buildPageableListView(iModel);
    listView.setReuseItems(true);
    PagingNavigator pageNavigator = new PagingNavigator("navigator", listView);
    searchResultPanel.add(pageNavigator);
    searchResultPanel.add(listView);
    arkCrudContainerVO.getSearchResultPanelContainer().add(searchResultPanel);
    searchResultPanel.setVisible(true);

    return arkCrudContainerVO.getSearchResultPanelContainer();
}

From source file:au.org.theark.phenotypic.web.component.phenodataupload.PhenoDataUploadStep1.java

License:Open Source License

private void initQuestionnaireDdc() {
    Study study = null;//from w w  w .j  a  v  a2s .  co m
    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    if (sessionStudyId != null && sessionStudyId > 0) {
        study = iArkCommonService.getStudy(sessionStudyId);
    } else {
        log.error("\n\n\n can't have a null study and see pheno!");
    }
    // Get a list of questionnaires for the subject in context by default
    PhenoDataSetGroup pfgForStudyCriteria = new PhenoDataSetGroup();
    pfgForStudyCriteria.setStudy(study);
    ArkFunction arkFunction = iArkCommonService
            .getArkFunctionByName(au.org.theark.core.Constants.FUNCTION_KEY_VALUE_PHENO_COLLECTION);
    pfgForStudyCriteria.setArkFunction(arkFunction);
    pfgForStudyCriteria.setPublished(true); //make sure that we don't return non-published Questionnaires
    List<PhenoDataSetGroup> questionnaireList = iPhenotypicService.getPhenoDataSetGroups(pfgForStudyCriteria, 0,
            Integer.MAX_VALUE);
    ChoiceRenderer<PhenoDataSetGroup> choiceRenderer = new ChoiceRenderer<PhenoDataSetGroup>("name", "id");
    questionnaireDdc = new DropDownChoice<PhenoDataSetGroup>("phenoDataSetGroup",
            (List<PhenoDataSetGroup>) questionnaireList, choiceRenderer);
    questionnaireDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        protected void onUpdate(AjaxRequestTarget target) {
            List<PhenoDataSetField> phenoDataSetFields = iPhenotypicService
                    .getAllPhenoDataSetFieldsLinkedToPhenoDataSetFieldGroup(questionnaireDdc.getModelObject());
            if (phenoDataSetFields.size() > 0) {
                downloadTemplateButton.setEnabled(true);
                for (PhenoDataSetField phenoDataSetField : phenoDataSetFields) {
                    PHENO_COLUMN_NAMES = (String[]) ArrayUtils.add(PHENO_COLUMN_NAMES,
                            phenoDataSetField.getName());
                    PHENO_COLUMN_DESC = (String[]) ArrayUtils.add(PHENO_COLUMN_DESC,
                            getUserFamiliardesc(phenoDataSetField));
                }
                PHENO_TEMPLATE_CELLS2 = createPhenoTemplateCellArray(PHENO_COLUMN_NAMES, PHENO_COLUMN_DESC);
                PHENO_COLUMN_NAMES = null;
                PHENO_COLUMN_DESC = null;
                templatePanel.remove(downloadTemplateButton);
                initDownloadButton(PHENO_TEMPLATE_CELLS2, questionnaireDdc.getModelObject().getName());
                templatePanel.add(downloadTemplateButton);
                target.add(downloadTemplateButton);
                target.add(templatePanel);
            } else {
                error("The DataSet not having any fields specified.");
                getWizardForm().onError(target, null);
                downloadTemplateButton.setEnabled(false);
                target.add(downloadTemplateButton);
            }
        }
    });
}

From source file:au.org.theark.phenotypic.web.component.phenodataupload.PhenoDataUploadStep1.java

License:Open Source License

private void saveFileInMemory(AjaxRequestTarget target) {
    Long studyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    Study study = iArkCommonService.getStudy(studyId);
    FileUpload fileUpload = fileUploadField.getFileUpload();
    containerForm.getModelObject().setFileUpload(fileUpload);
    Payload payload = iArkCommonService.createPayload(fileUpload.getBytes());

    containerForm.getModelObject().getUpload().setPayload(payload);
    String filename = containerForm.getModelObject().getFileUpload().getClientFileName();
    String fileFormatName = filename.substring(filename.lastIndexOf('.') + 1).toUpperCase();
    au.org.theark.core.model.study.entity.FileFormat fileFormat = new au.org.theark.core.model.study.entity.FileFormat();
    fileFormat = iArkCommonService.getFileFormatByName(fileFormatName);
    byte[] byteArray = fileUpload.getMD5();
    String checksum = getHex(byteArray);

    containerForm.getModelObject().getUpload().setStudy(study);
    containerForm.getModelObject().getUpload().setFileFormat(fileFormat);
    containerForm.getModelObject().getUpload().setChecksum(checksum);
    containerForm.getModelObject().getUpload().setFilename(filename);
    containerForm.getModelObject().getUpload().setStartTime(new Date(System.currentTimeMillis()));
    containerForm.getModelObject().getUpload().setArkFunction(
            iArkCommonService.getArkFunctionByName(Constants.FUNCTION_KEY_VALUE_FIELD_DATA_UPLOAD));
    wizardForm.setFileName(filename);// w ww. jav a  2s  .c o  m

    containerForm.getModelObject().getUpload()
            .setUploadStatus(iArkCommonService.getUploadStatusFor(Constants.UPLOAD_STATUS_COMPLETED));
    //TODO analyse how many times this is saved and where it should be saved
    try {
        iArkCommonService.createUpload(containerForm.getModelObject().getUpload());
        containerForm.getModelObject().setPreviousStepOutCompleted(true);

    } catch (Exception e) {
        // TODO Auto-generated catch block
        error("There is a problem during the upload process.");
        getWizardForm().onError(target, null);

    }

}

From source file:au.org.theark.phenotypic.web.component.phenodataupload.PhenoDataUploadStep4.java

License:Open Source License

@Override
public void onStepOutNext(AbstractWizardForm<?> form, AjaxRequestTarget target) {
    form.getNextButton().setEnabled(false);
    target.add(form.getNextButton());//from   w ww. j av a2s .  c o m
    // Filename seems to be lost from model when moving between steps in wizard?  is this a symptom of something greater?
    containerForm.getModelObject().getUpload().setFilename(wizardForm.getFileName());
    String fileFormat = containerForm.getModelObject().getUpload().getFileFormat().getName();
    char delimiterChar = containerForm.getModelObject().getUpload().getDelimiterType().getDelimiterCharacter();
    try {
        List<String> uidsToUpload = containerForm.getModelObject().getUidsToUpload();
        log.info("________________________________________________________"
                + "about to try passing list of uids is of size " + uidsToUpload.size());
        InputStream inputStream = containerForm.getModelObject().getFileUpload().getInputStream();
        long size = containerForm.getModelObject().getFileUpload().getSize();
        Long uploadId = containerForm.getModelObject().getUpload().getId();
        String report = generateInitialUploadReport();
        Subject currentUser = SecurityUtils.getSubject();
        Long studyId = (Long) currentUser.getSession()
                .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
        PhenoDataSetCollection phenoCollectionCriteria = containerForm.getModelObject().getPhenoCollection();
        PhenoDataSetGroup phenoDataSetGroup = containerForm.getModelObject().getPhenoDataSetGroup();
        PhenoDataUploadExecutor task = new PhenoDataUploadExecutor(iArkCommonService, iPhenoService,
                inputStream, uploadId, //null user
                studyId, fileFormat, delimiterChar, size, report, uidsToUpload, phenoCollectionCriteria,
                phenoDataSetGroup, containerForm.getModelObject().getUpdateChkBox());
        task.run();
    } catch (Exception e1) {
        addOrReplace(new MultiLineLabel("multiLineLabel", "There is an issue during the data upload process."));
        form.getNextButton().setEnabled(false);
        target.add(form.getWizardButtonContainer());
        containerForm.getModelObject().setPreviousStepOutCompleted(false);
    }
}

From source file:au.org.theark.phenotypic.web.component.phenofielduploader.form.SearchForm.java

License:Open Source License

/**
 * /*  www.  j a  v a  2s .c o  m*/
 * @param id
 * @param model
 * @param arkCrudContainerVO
 * @param feedBackPanel
 * @param listView
 */
public SearchForm(String id, CompoundPropertyModel<PhenoDataSetFieldUploadVO> model,
        ArkCrudContainerVO arkCrudContainerVO, FeedbackPanel feedBackPanel, PageableListView<Upload> listView) {

    super(id, model, feedBackPanel, arkCrudContainerVO);

    this.cpmModel = model;
    this.listView = listView;

    initialiseFieldForm();
    Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    disableSearchForm(sessionStudyId, "There is no study in context. Please select a study");
}

From source file:au.org.theark.phenotypic.web.component.phenofielduploader.form.SearchForm.java

License:Open Source License

@Override
protected void onSearch(AjaxRequestTarget target) {
    target.add(feedbackPanel);//from  w  w  w.ja  va 2  s  .c  o m

    // Set study in context
    Long studyId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    // Get a list of all Fields for the Study in context
    Study study = iArkCommonService.getStudy(studyId);

    Upload searchUpload = getModelObject().getUpload();
    searchUpload.setStudy(study);
    searchUpload.setArkFunction(
            iArkCommonService.getArkFunctionByName(Constants.FUNCTION_KEY_VALUE_DATA_DICTIONARY));

    Collection<Upload> uploadCollection = iArkCommonService.searchUploads(searchUpload);

    if (uploadCollection != null && uploadCollection.size() == 0) {
        this.info("Uploads with the specified criteria does not exist in the system.");
        target.add(feedbackPanel);
    }

    getModelObject().setUploadCollection(uploadCollection);

    listView.removeAll();
    arkCrudContainerVO.getSearchResultPanelContainer().setVisible(true);
    target.add(arkCrudContainerVO.getSearchResultPanelContainer());
}

From source file:au.org.theark.phenotypic.web.component.phenofielduploader.PhenoDataSetCategoryFieldUploadStep4.java

License:Open Source License

@Override
public void onStepOutNext(AbstractWizardForm<?> form, AjaxRequestTarget target) {
    // Filename seems to be lost from model when moving between steps in wizard
    containerForm.getModelObject().getUpload().setFilename(wizardForm.getFileName());
    // Perform actual upload of data
    containerForm.getModelObject().getUpload().setStartTime(new Date(System.currentTimeMillis()));
    StringBuffer uploadReport = null;
    String filename = containerForm.getModelObject().getFileUpload().getClientFileName();
    String fileFormat = filename.substring(filename.lastIndexOf('.') + 1).toUpperCase();
    FileFormat fileFormatObj;//from   w  w w  .jav  a  2s . co m
    fileFormatObj = iArkCommonService.getFileFormatByName(fileFormat);
    containerForm.getModelObject().getUpload().setFileFormat(fileFormatObj);

    char delimiterChar = containerForm.getModelObject().getUpload().getDelimiterType().getDelimiterCharacter();

    Subject currentUser = SecurityUtils.getSubject();
    Long studyId = (Long) currentUser.getSession().getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
    Study study = iArkCommonService.getStudy(studyId);
    UploadLevel uploadLevel = containerForm.getModelObject().getUpload().getUploadLevel();
    Long sessionModuleId = (Long) SecurityUtils.getSubject().getSession()
            .getAttribute(au.org.theark.core.Constants.ARK_MODULE_KEY);
    containerForm.getModelObject().getUpload().setUploadType(iArkCommonService.getUploadTypeByModuleAndName(
            iArkCommonService.getArkModuleById(sessionModuleId),
            au.org.theark.phenotypic.web.component.phenofielduploader.Constants.UPLOAD_TYPE_CUSTOM_DATA_SETS));
    ArkFunction adjustedArkFunctionForCustomField = null;
    // Field upload
    if (uploadLevel.getName().equalsIgnoreCase(
            au.org.theark.core.web.component.customfieldupload.Constants.UPLOAD_LEVEL_FIELD)) {
        adjustedArkFunctionForCustomField = iArkCommonService
                .getArkFunctionByName(au.org.theark.core.Constants.FUNCTION_KEY_VALUE_DATA_DICTIONARY);
        iPhenoImporter = new PhenoDataSetFieldImporter(study, adjustedArkFunctionForCustomField,
                iArkCommonService, iPhenotypicService, fileFormat, delimiterChar);
    } else if (uploadLevel.getName().equalsIgnoreCase(
            au.org.theark.core.web.component.customfieldupload.Constants.UPLOAD_LEVEL_CATEGORY)) {
        adjustedArkFunctionForCustomField = iArkCommonService
                .getArkFunctionByName(au.org.theark.core.Constants.FUNCTION_KEY_VALUE_DATA_CATEGORY);
        iPhenoImporter = new PhenoDataSetFieldCategoryImporter(study, adjustedArkFunctionForCustomField,
                iArkCommonService, iPhenotypicService, fileFormat, delimiterChar);
    }

    try {
        log.info("Uploading data dictionary file");
        InputStream inputStream = containerForm.getModelObject().getFileUpload().getInputStream();
        if (fileFormat.equalsIgnoreCase("XLS")) {
            Workbook w;
            try {
                w = Workbook.getWorkbook(inputStream);
                inputStream = iPhenoImporter.convertXlsToCsv(w);
                inputStream.reset();
            } catch (BiffException e) {
                log.error(e.getMessage());
            } catch (IOException e) {
                log.error(e.getMessage());
            }
        }
        uploadReport = iPhenoImporter.uploadAndReportMatrixDataDictionaryFile(inputStream,
                containerForm.getModelObject().getFileUpload().getSize());
        if (iPhenoImporter instanceof PhenoDataSetFieldCategoryImporter)
            containerForm.getModelObject().setPhenoFieldUploadCategoryCollection(
                    ((PhenoDataSetFieldCategoryImporter) iPhenoImporter).getFieldUploadList());
        else if (iPhenoImporter instanceof PhenoDataSetFieldImporter) {
            containerForm.getModelObject().setPhenoFieldUploadCollection(
                    ((PhenoDataSetFieldImporter) iPhenoImporter).getFieldUploadList());
        }
    } catch (FileFormatException ffe) {
        log.error(Constants.FILE_FORMAT_EXCEPTION + ffe);
    } catch (IOException ioe) {
        log.error(ioe.getMessage());
    } catch (ArkSystemException ase) {
        log.error(ase.getMessage());
    }
    // Update the report
    if (uploadReport != null) {
        updateUploadReport(uploadReport.toString());
    }
    // Save all objects to the database
    save(iPhenoImporter);
}

From source file:au.org.theark.phenotypic.web.menu.PhenotypicTabProviderImpl.java

License:Open Source License

public ITab createTab(final String tabName) {
    return new ArkMainTab(new Model<String>(tabName)) {

        private static final long serialVersionUID = -9077903025658028710L;

        @Override//from  ww w  . ja va2  s . c o  m
        public Panel getPanel(String pid) {
            // The sub menu(s)
            return new PhenotypicSubMenuTab(pid, arkContextPanelMarkup);
        }

        public boolean isAccessible() {
            Long sessionStudyId = (Long) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID);
            if (sessionStudyId == null) {
                this.getPanel(au.org.theark.core.Constants.ARK_MODULE_PHENOTYPIC)
                        .error(au.org.theark.core.Constants.NO_STUDY_IN_CONTEXT_MESSAGE);
                return false;
            } else
                return true;
        }

        public boolean isVisible() {
            return ArkPermissionHelper
                    .isModuleAccessPermitted(au.org.theark.core.Constants.ARK_MODULE_PHENOTYPIC);
        }
    };
}

From source file:au.org.theark.registry.web.component.invoice.form.DetailForm.java

License:Open Source License

public void initialiseDetailForm() {
    name = new TextField<String>("name");
    name.add(new ArkDefaultFormFocusBehavior());
    description = new TextField<String>("description");

    processResults = new ProcessResultListPanel("processResults", feedBackPanel, (ContainerForm) containerForm,
            arkCrudContainerVO);/*  w  w w  . j a  v  a  2  s.c  o  m*/

    // Data providor to paginate resultList
    processProvider = new ArkDataProvider<au.org.theark.core.model.geno.entity.Process, IArkCommonService>(
            iArkCommonService) {

        private static final long serialVersionUID = 1L;

        public int size() {
            Study study = iArkCommonService.getStudy((Long) SecurityUtils.getSubject().getSession()
                    .getAttribute(au.org.theark.core.Constants.STUDY_CONTEXT_ID));
            Pipeline p = containerForm.getModelObject();
            au.org.theark.core.model.geno.entity.Process proc = model.getObject();
            proc.setPipeline(p);
            return (int) service.getProcessCount(model.getObject());
        }

        public Iterator<au.org.theark.core.model.geno.entity.Process> iterator(int first, int count) {
            List<au.org.theark.core.model.geno.entity.Process> list = new ArrayList<au.org.theark.core.model.geno.entity.Process>();
            list = iArkCommonService.searchPageableProcesses(model.getObject(), first, count);
            return list.iterator();
        }
    };

    processProvider.setModel(new Model<au.org.theark.core.model.geno.entity.Process>(
            new au.org.theark.core.model.geno.entity.Process()));

    dataView = processResults.buildDataView(processProvider);
    dataView.setItemsPerPage(iArkCommonService.getRowsPerPage());

    PagingNavigator pageNavigator = new PagingNavigator("navigator", dataView);

    processResults.add(pageNavigator);
    processResults.buildDataView(processProvider);

    resultsWmc.add(pageNavigator);
    resultsWmc.add(dataView);
    processResults.add(resultsWmc);

    attachValidators();
    addDetailFormComponents();
}