diff options
Diffstat (limited to 'modules/user')
-rw-r--r-- | modules/user/user.admin.inc | 41 | ||||
-rw-r--r-- | modules/user/user.module | 10 |
2 files changed, 46 insertions, 5 deletions
diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc index 09e3c554e..23fc14c74 100644 --- a/modules/user/user.admin.inc +++ b/modules/user/user.admin.inc @@ -663,7 +663,7 @@ function user_admin_permissions($form, $form_state, $rid = NULL) { // Render role/permission overview: $options = array(); $module_info = system_get_info('module'); - $hide_descriptions = !system_admin_compact_mode(); + $hide_descriptions = system_admin_compact_mode(); // Get a list of all the modules implementing a hook_permission() and sort by // display name. @@ -680,11 +680,17 @@ function user_admin_permissions($form, $form_state, $rid = NULL) { '#id' => $module, ); foreach ($permissions as $perm => $perm_item) { + // Fill in default values for the permission. + $perm_item += array( + 'description' => '', + 'restrict access' => FALSE, + 'warning' => !empty($perm_item['restrict access']) ? t('Warning: Give to trusted roles only; this permission has security implications.') : '', + ); $options[$perm] = ''; $form['permission'][$perm] = array( '#type' => 'item', '#markup' => $perm_item['title'], - '#description' => $hide_descriptions && isset($perm_item['description']) ? $perm_item['description'] : NULL, + '#description' => theme('user_permission_description', array('permission_item' => $perm_item, 'hide' => $hide_descriptions)), ); foreach ($role_names as $rid => $name) { // Builds arrays for checked boxes for each role @@ -764,6 +770,37 @@ function theme_user_admin_permissions($variables) { } /** + * Theme an individual permission description. + * + * @param $variables + * An associative array containing: + * - permission_item: An associative array representing the permission whose + * description is being themed. Useful keys include: + * - description: The text of the permission description. + * - warning: A security-related warning message about the permission (if + * there is one). + * - hide: A boolean indicating whether or not the permission description was + * requested to be hidden rather than shown. + * + * @ingroup themeable + */ +function theme_user_permission_description($variables) { + if (!$variables['hide']) { + $description = array(); + $permission_item = $variables['permission_item']; + if (!empty($permission_item['description'])) { + $description[] = $permission_item['description']; + } + if (!empty($permission_item['warning'])) { + $description[] = '<em class="permission-warning">' . $permission_item['warning'] . '</em>'; + } + if (!empty($description)) { + return implode(' ', $description); + } + } +} + +/** * Menu callback: administer roles. * * @ingroup forms diff --git a/modules/user/user.module b/modules/user/user.module index 2ec522113..ac92802cf 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -110,6 +110,10 @@ function user_theme() { 'render element' => 'form', 'file' => 'user.admin.inc', ), + 'user_permission_description' => array( + 'variables' => array('permission_item' => NULL, 'hide' => NULL), + 'file' => 'user.admin.inc', + ), 'user_signature' => array( 'variables' => array('signature' => NULL), ), @@ -735,11 +739,11 @@ function user_permission() { return array( 'administer permissions' => array( 'title' => t('Administer permissions'), - 'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))), + 'restrict access' => TRUE, ), 'administer users' => array( 'title' => t('Administer users'), - 'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))), + 'restrict access' => TRUE, ), 'access user profiles' => array( 'title' => t('View user profiles'), @@ -753,7 +757,7 @@ function user_permission() { ), 'select account cancellation method' => array( 'title' => t('Select method for cancelling own account'), - 'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))), + 'restrict access' => TRUE, ), ); } |