/** * @see Tracker_Artifact_Changeset_NewChangesetCreatorBase::saveNewChangesetForField() */ protected function saveNewChangesetForField(Tracker_FormElement_Field $field, Tracker_Artifact $artifact, $previous_changeset, array $fields_data, PFUser $submitter, $changeset_id) { $is_submission = false; $bypass_perms = true; $workflow = $artifact->getWorkflow(); if ($this->isFieldSubmitted($field, $fields_data)) { if ($field->userCanUpdate()) { return $field->saveNewChangeset($artifact, $previous_changeset, $changeset_id, $fields_data[$field->getId()], $submitter, $is_submission); } else { if ($workflow && $workflow->bypassPermissions($field)) { return $field->saveNewChangeset($artifact, $previous_changeset, $changeset_id, $fields_data[$field->getId()], $submitter, $is_submission, $bypass_perms); } else { return $field->saveNewChangeset($artifact, $previous_changeset, $changeset_id, null, $submitter, $is_submission); } } } else { return $field->saveNewChangeset($artifact, $previous_changeset, $changeset_id, null, $submitter, $is_submission); } }
/** * @see parent::saveNewChangesetForField() */ protected function saveNewChangesetForField(Tracker_FormElement_Field $field, Tracker_Artifact $artifact, array $fields_data, PFUser $submitter, $changeset_id) { $is_submission = true; $bypass_perms = true; $workflow = $artifact->getWorkflow(); if ($this->isFieldSubmitted($field, $fields_data)) { if ($field->userCanSubmit()) { $field->saveNewChangeset($artifact, null, $changeset_id, $fields_data[$field->getId()], $submitter, $is_submission); } else { if ($workflow && $workflow->bypassPermissions($field)) { $field->saveNewChangeset($artifact, null, $changeset_id, $fields_data[$field->getId()], $submitter, $is_submission, $bypass_perms); } } } else { if (!$field->userCanSubmit() && $field->isSubmitable()) { $this->pushDefaultValueInSubmittedValues($field, $fields_data); $field->saveNewChangeset($artifact, null, $changeset_id, $fields_data[$field->getId()], $submitter, $is_submission, $bypass_perms); } } }
private function askWorkflowToUpdateTheRequestAndCheckGlobalRules(Tracker_Artifact $artifact, array &$fields_data, PFUser $submitter) { $workflow = $artifact->getWorkflow(); if ($workflow) { $workflow->before($fields_data, $submitter, $artifact); $augmented_data = $this->field_initializator->process($artifact, $fields_data); try { $workflow->checkGlobalRules($augmented_data, $this->formelement_factory); } catch (Tracker_Workflow_GlobalRulesViolationException $e) { return false; } } return true; }