user_admin_permissions
- Versions
- 7
user_admin_permissions($form, $form_state, $rid = NULL)
Menu callback: administer permissions.
See also
user_admin_permissions_submit()
@see theme_user_admin_permissions()
Related topics
Code
modules/user/user.admin.inc, line 644
<?php
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_info[$module]['name']] = $module;
}
ksort($modules);
foreach ($modules as $display_name => $module) {
if ($permissions = module_invoke($module, 'permission')) {
$form['permission'][] = array(
'#markup' => $module_info[$module]['name'],
'#id' => $module,
);
foreach ($permissions as $perm => $perm_item) {
$options[$perm] = '';
$form['permission'][$perm] = array(
'#type' => 'item',
'#markup' => $perm_item['title'],
'#description' => $hide_descriptions && isset($perm_item['description']) ? $perm_item['description'] : NULL,
);
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());
$form['role_names'][$rid] = array('#markup' => $name, '#tree' => TRUE);
}
$form['submit'] = array('#type' => 'submit', '#value' => t('Save permissions'));
$form['#attached']['js'][] = drupal_get_path('module', 'user') . '/user.permissions.js';
return $form;
}
?>Login or register to post comments 