You are here

function workflow_admin_ui_permissions in Workflow 6.2

Same name and namespace in other branches
  1. 6 workflow_admin_ui/workflow_admin_ui.module \workflow_admin_ui_permissions()

View workflow permissions by role

Parameters

$wid: The ID of the workflow.

1 call to workflow_admin_ui_permissions()
workflow_admin_ui_edit_form in workflow_admin_ui/workflow_admin_ui.module
Menu callback. Edit a workflow's properties.

File

workflow_admin_ui/workflow_admin_ui.module, line 229
Provides administrative UI for workflow. Why it's own module? Lower code footprint and better performance. Additional creadit to gcassie ( http://drupal.org/user/80260 ) for the initial push to split UI out of core workflow. We're moving…

Code

function workflow_admin_ui_permissions($wid) {
  $name = workflow_get_name($wid);
  $all = array();
  $roles = array(
    'author' => t('author'),
  ) + user_roles();
  foreach ($roles as $role => $value) {
    $all[$role]['name'] = $value;
  }
  $result = db_query('SELECT t.roles, s1.state AS state_name, s2.state AS target_state_name ' . 'FROM {workflow_transitions} t ' . 'INNER JOIN {workflow_states} s1 ON s1.sid = t.sid ' . 'INNER JOIN {workflow_states} s2 ON s2.sid = t.target_sid ' . 'WHERE s1.wid = %d ' . 'ORDER BY s1.weight ASC , s1.state ASC , s2.weight ASC , s2.state ASC', $wid);
  while ($data = db_fetch_object($result)) {
    foreach (explode(',', $data->roles) as $role) {
      $all[$role]['transitions'][] = array(
        check_plain(t($data->state_name)),
        WORKFLOW_ARROW,
        check_plain(t($data->target_state_name)),
      );
    }
  }
  $header = array(
    t('From'),
    '',
    t('To'),
  );
  return theme('workflow_admin_ui_permissions', $header, $all);
}