summaryrefslogtreecommitdiff
path: root/modules/user/user.admin.inc
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user/user.admin.inc')
-rw-r--r--modules/user/user.admin.inc25
1 files changed, 20 insertions, 5 deletions
diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc
index c639280c3..3e554151e 100644
--- a/modules/user/user.admin.inc
+++ b/modules/user/user.admin.inc
@@ -516,15 +516,25 @@ function user_admin_perm($form_state, $rid = NULL) {
// Render role/permission overview:
$options = array();
+ $hide_descriptions = !system_admin_compact_mode();
foreach (module_list(FALSE, FALSE, TRUE) as $module) {
if ($permissions = module_invoke($module, 'perm')) {
$form['permission'][] = array(
'#value' => $module,
);
- asort($permissions);
- foreach ($permissions as $perm) {
+ ksort($permissions);
+ foreach ($permissions as $perm => $description) {
+ // Account for permissions lacking a description.
+ if (is_int($perm)) {
+ $perm = $description;
+ $description = NULL;
+ }
$options[$perm] = '';
- $form['permission'][$perm] = array('#value' => t($perm));
+ $form['permission'][$perm] = array(
+ '#type' => 'item',
+ '#value' => t($perm),
+ '#description' => $hide_descriptions ? $description : NULL,
+ );
foreach ($role_names as $rid => $name) {
// Builds arrays for checked boxes for each role
if (strpos($role_permissions[$rid], $perm .',') !== FALSE) {
@@ -582,7 +592,11 @@ function theme_user_admin_perm($form) {
$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');
+ // Permission row.
+ $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));
@@ -598,7 +612,8 @@ function theme_user_admin_perm($form) {
$header[] = array('data' => drupal_render($form['role_names'][$rid]), 'class' => 'checkbox');
}
}
- $output = theme('table', $header, $rows, array('id' => 'permissions'));
+ $output = theme('system_compact_link');
+ $output .= theme('table', $header, $rows, array('id' => 'permissions'));
$output .= drupal_render($form);
return $output;
}