projects
/
arvados-workbench2.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
19143: Checks that project is writable when selecting workflow
[arvados-workbench2.git]
/
src
/
store
/
workflow-panel
/
workflow-panel-actions.ts
diff --git
a/src/store/workflow-panel/workflow-panel-actions.ts
b/src/store/workflow-panel/workflow-panel-actions.ts
index b533717e559f4cf6c252a47862b4bfd307ea93b3..7c90fa6bb290fbfd6f58aa16f96b2876effc0b88 100644
(file)
--- a/
src/store/workflow-panel/workflow-panel-actions.ts
+++ b/
src/store/workflow-panel/workflow-panel-actions.ts
@@
-15,6
+15,10
@@
import { initialize } from 'redux-form';
import { RUN_PROCESS_BASIC_FORM } from 'views/run-process-panel/run-process-basic-form';
import { RUN_PROCESS_INPUTS_FORM } from 'views/run-process-panel/run-process-inputs-form';
import { RUN_PROCESS_ADVANCED_FORM } from 'views/run-process-panel/run-process-advanced-form';
import { RUN_PROCESS_BASIC_FORM } from 'views/run-process-panel/run-process-basic-form';
import { RUN_PROCESS_INPUTS_FORM } from 'views/run-process-panel/run-process-inputs-form';
import { RUN_PROCESS_ADVANCED_FORM } from 'views/run-process-panel/run-process-advanced-form';
+import { getResource, ResourcesState } from 'store/resources/resources';
+import { ProjectResource } from 'models/project';
+import { UserResource } from 'models/user';
+import { getUserUuid } from "common/getuser";
export const WORKFLOW_PANEL_ID = "workflowPanel";
const UUID_PREFIX_PROPERTY_NAME = 'uuidPrefix';
export const WORKFLOW_PANEL_ID = "workflowPanel";
const UUID_PREFIX_PROPERTY_NAME = 'uuidPrefix';
@@
-50,12
+54,21
@@
export const openRunProcess = (workflowUuid: string, ownerUuid?: string, name?:
dispatch<any>(loadPresets(workflow.uuid));
dispatch(initialize(RUN_PROCESS_ADVANCED_FORM, getWorkflowRunnerSettings(workflow)));
dispatch<any>(loadPresets(workflow.uuid));
dispatch(initialize(RUN_PROCESS_ADVANCED_FORM, getWorkflowRunnerSettings(workflow)));
+ let owner;
if (ownerUuid) {
if (ownerUuid) {
- dispatch(runProcessPanelActions.SET_PROCESS_OWNER_UUID(ownerUuid));
+ // Must be writable.
+ const userUuid = getUserUuid(getState());
+ owner = getResource<ProjectResource | UserResource>(ownerUuid)(getState().resources);
+ if (!owner || !userUuid || owner.writableBy.indexOf(userUuid) === -1) {
+ owner = undefined;
+ }
}
}
- if (
name
) {
- dispatch(
initialize(RUN_PROCESS_BASIC_FORM, { name }
));
+ if (
owner
) {
+ dispatch(
runProcessPanelActions.SET_PROCESS_OWNER_UUID(owner.uuid
));
}
}
+
+ dispatch(initialize(RUN_PROCESS_BASIC_FORM, { name, owner }));
+
if (inputObj) {
dispatch(initialize(RUN_PROCESS_INPUTS_FORM, inputObj));
}
if (inputObj) {
dispatch(initialize(RUN_PROCESS_INPUTS_FORM, inputObj));
}