function webform_workflow_change_submission_state in Webform Workflow 7
Action callback for changing the workflow state of a submission.
Parameters
object $submission: The submission, loaded via the Entity API as a 'webform_workflow_submission' entity.
array $context: Contextual information provided by the action configuration form. This must include the keys 'new_state' and 'message'.
See also
webform_workflow_action_info()
File
- ./
webform_workflow.module, line 955 - A simple workflow module for webforms.
Code
function webform_workflow_change_submission_state($submission, array $context) {
// Reload the submission as a proper Webform submission object.
module_load_include('inc', 'webform', 'includes/webform.submissions');
$submission = webform_get_submission($submission->nid, $submission->sid);
$node = node_load($submission->nid);
$current_state = webform_workflow_state_load_by_submission($submission);
if ($current_state && !webform_workflow_state_check_access('from', $current_state, $node, $submission)) {
drupal_set_message(t('You do not have permission to change the state of submission #@sid', array(
'@sid' => $submission->sid,
)));
return;
}
$new_state = $context['new_state'];
if (!webform_workflow_state_check_access('to', $new_state, $node, $submission)) {
drupal_set_message(t('You do not have permission to change submission #@sid to state %state', array(
'@sid' => $submission->sid,
'%state' => $new_state->label,
)));
return;
}
webform_workflow_transition($submission, $new_state, $context['message'], $GLOBALS['user'], TRUE, TRUE);
}