function user_admin_permissions
user_admin_permissions($form, $form_state, $rid = NULL)
Menu callback: administer permissions.
See also
user_admin_permissions_submit()
theme_user_admin_permissions()
Related topics
File
- modules/user/user.admin.inc, line 672
- Admin page callback file for the user module.
Code
function user_admin_permissions($form, $form_state, $rid = NULL) { // Retrieve role names for columns. $role_names = user_roles(); if (is_numeric($rid)) { $role_names = array($rid => $role_names[$rid]); } // Fetch permissions for all roles or the one selected role. $role_permissions = user_role_permissions($role_names); // Store $role_names for use when saving the data. $form['role_names'] = array( '#type' => 'value', '#value' => $role_names, ); // Render role/permission overview: $options = array(); $module_info = system_get_info('module'); $hide_descriptions = system_admin_compact_mode(); // Get a list of all the modules implementing a hook_permission() and sort by // display name. $modules = array(); foreach (module_implements('permission') as $module) { $modules[$module] = $module_info[$module]['name']; } asort($modules); foreach ($modules as $module => $display_name) { if ($permissions = module_invoke($module, 'permission')) { $form['permission'][] = array( '#markup' => $module_info[$module]['name'], '#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' => 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 if (isset($role_permissions[$rid][$perm])) { $status[$rid][] = $perm; } } } } } // Have to build checkboxes here after checkbox arrays are built foreach ($role_names as $rid => $name) { $form['checkboxes'][$rid] = array( '#type' => 'checkboxes', '#options' => $options, '#default_value' => isset($status[$rid]) ? $status[$rid] : array(), '#attributes' => array('class' => array('rid-' . $rid)), ); $form['role_names'][$rid] = array('#markup' => check_plain($name), '#tree' => TRUE); } $form['actions'] = array('#type' => 'actions'); $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save permissions')); $form['#attached']['js'][] = drupal_get_path('module', 'user') . '/user.permissions.js'; return $form; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!user!user.admin.inc/function/user_admin_permissions/7.x