Same name and namespace in other branches
  1. 4.7.x modules/user.module \theme_user_admin_perm()
  2. 5.x modules/user/user.module \theme_user_admin_perm()

Theme the administer permissions page.

Related topics

File

modules/user/user.admin.inc, line 597
Admin page callback file for the user module.

Code

function theme_user_admin_perm($form) {
  $roles = user_roles();
  foreach (element_children($form['permission']) as $key) {

    // Don't take form control structures
    if (is_array($form['permission'][$key])) {
      $row = array();

      // Module name
      if (is_numeric($key)) {
        $row[] = array(
          'data' => t('@module module', array(
            '@module' => drupal_render($form['permission'][$key]),
          )),
          'class' => 'module',
          'id' => 'module-' . $form['permission'][$key]['#value'],
          'colspan' => count($form['role_names']) + 1,
        );
      }
      else {
        $row[] = array(
          'data' => drupal_render($form['permission'][$key]),
          'class' => 'permission',
        );
        foreach (element_children($form['checkboxes']) as $rid) {
          if (is_array($form['checkboxes'][$rid])) {
            $row[] = array(
              'data' => drupal_render($form['checkboxes'][$rid][$key]),
              'class' => 'checkbox',
              'title' => $roles[$rid] . ' : ' . t($key),
            );
          }
        }
      }
      $rows[] = $row;
    }
  }
  $header[] = t('Permission');
  foreach (element_children($form['role_names']) as $rid) {
    if (is_array($form['role_names'][$rid])) {
      $header[] = array(
        'data' => drupal_render($form['role_names'][$rid]),
        'class' => 'checkbox',
      );
    }
  }
  $output = theme('table', $header, $rows, array(
    'id' => 'permissions',
  ));
  $output .= drupal_render($form);
  return $output;
}