diff --git a/api/src/org/labkey/api/workflow/WorkflowService.java b/api/src/org/labkey/api/workflow/WorkflowService.java index d51bf41b381..c0150c500e3 100644 --- a/api/src/org/labkey/api/workflow/WorkflowService.java +++ b/api/src/org/labkey/api/workflow/WorkflowService.java @@ -95,6 +95,8 @@ static WorkflowService get() boolean actionWillAddSamples(Long actionId); boolean actionWillAddSources(Long actionId); + boolean isTaskAssayType(Long taskId, Long assayId); + DataIteratorBuilder getSampleCreationDataIteratorBuilder(DataIteratorBuilder data, Container container, User user); DataIteratorBuilder getSourceCreationDataIteratorBuilder(DataIteratorBuilder data, Container container, User user); diff --git a/assay/src/org/labkey/assay/actions/ImportRunApiAction.java b/assay/src/org/labkey/assay/actions/ImportRunApiAction.java index 27c31d0ea8d..bf4eca90af6 100644 --- a/assay/src/org/labkey/assay/actions/ImportRunApiAction.java +++ b/assay/src/org/labkey/assay/actions/ImportRunApiAction.java @@ -201,6 +201,14 @@ public ApiResponse execute(ImportRunApiForm form, BindException errors) throws E auditDetailsJsonStr = form.getAuditDetails(); } + if (workflowTaskId != null) + { + WorkflowService workService = WorkflowService.get(); + + if (workService != null && protocol != null && !workService.isTaskAssayType(workflowTaskId, protocol.getRowId())) + throw new ExperimentException("Invalid job task id " + workflowTaskId + ". Either the task does not exist or does not reference this assay type."); + } + if (reImportOption == null) { if (provider != null && protocol != null && provider.isPlateMetadataEnabled(protocol))