You are here

function workflow_access_form_submit in Workflow 7.2

Same name and namespace in other branches
  1. 5.2 workflow_access.module \workflow_access_form_submit()
  2. 5 workflow_access.module \workflow_access_form_submit()
  3. 6.2 workflow_access/workflow_access.module \workflow_access_form_submit()
  4. 6 workflow_access/workflow_access.module \workflow_access_form_submit()
  5. 7 workflow_access/workflow_access.module \workflow_access_form_submit()

Stores permission settings for workflow states.

File

workflow_access/workflow_access.pages.inc, line 133
Provides pages for administrative UI.

Code

function workflow_access_form_submit($form, &$form_state) {
  $wid = $form['#wid'];
  foreach ($form_state['values'] as $sid => $access) {

    // Ignore irrelevant keys.
    if (!is_numeric($sid)) {
      continue;
    }
    foreach ($access['view'] as $rid => $checked) {
      $data = array(
        'sid' => $sid,
        'rid' => $rid,
        'grant_view' => !empty($checked) ? (bool) $checked : 0,
        'grant_update' => !empty($access['update'][$rid]) ? (bool) $access['update'][$rid] : 0,
        'grant_delete' => !empty($access['delete'][$rid]) ? (bool) $access['delete'][$rid] : 0,
      );
      workflow_access_insert_workflow_access_by_sid($data);
    }

    // Update all nodes having same workflow state to reflect new settings.
    // just set a flag, which is working for both Workflow Field ánd Workflow Node.
    node_access_needs_rebuild(TRUE);
  }
  drupal_set_message(t('Workflow access permissions updated.'));
  $form_state['redirect'] = WORKFLOW_ADMIN_UI_PATH;
}