summaryrefslogtreecommitdiff
path: root/modules/user
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user')
-rw-r--r--modules/user/user.admin.inc41
-rw-r--r--modules/user/user.module10
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,
),
);
}