user_settings_access.module in User Settings Access 7
Same filename and directory in other branches
Additional permission for more granular control of user settings and users.
File
user_settings_access.moduleView source
<?php
/**
* @file
* Additional permission for more granular control of user settings and users.
*/
/**
* Implements hook_permission().
*/
function user_settings_access_permission() {
$perms = array(
'administer account settings' => array(
'title' => t('Administer account settings'),
'description' => t('Control who has access to <a href="@user-settings-url">user settings</a>.', array(
'@user-settings-url' => url('admin/config/people/accounts'),
)),
),
'administer admin role' => array(
'title' => t('Administer Administrator Role'),
'description' => t('Control who has access to setting the admin role on <a href="@user-settings-url">user settings</a>.', array(
'@user-settings-url' => url('admin/config/people/accounts'),
)),
),
);
return $perms;
}
/**
* Implements hook_help().
*/
function user_settings_access_help($path, $arg) {
if ($path == 'admin/help#user_settings_access') {
$txt = '<p>' . t('Out of the box Drupal has just one permissions, <em>adminster users</em>, which controls both user settings and editing users. The site administrator can either grant both privileges to a role or neither of them.') . '</p>';
$txt .= '<p>' . 'This mini module provides additional permission for user settings. This allows now the site administrator to grant either user settings or administer users, or even both privileges if wanted. Often it could be clearer and helpful to allow others to manage users but restrict the general users settings only to admin.' . '</p>';
return $txt;
}
}
/**
* Implements hook_menu_alter().
*
* Do not allow people without permission to administer account settings to see
* the user admin settings form.
*/
function user_settings_access_menu_alter(&$items) {
$items['admin/config/people/accounts']['access arguments'] = array(
'administer account settings',
);
}
/**
* Implements hook_form_FORM_ID_alter().
*
* Modify the 'user_admin_settings' form to remove the administrator role
* setting for people without the permission.
*/
function user_settings_access_form_user_admin_settings_alter(&$form, &$form_state, $form_id) {
$form['admin_role']['#access'] = user_access('administer admin role');
}
Functions
Name![]() |
Description |
---|---|
user_settings_access_form_user_admin_settings_alter | Implements hook_form_FORM_ID_alter(). |
user_settings_access_help | Implements hook_help(). |
user_settings_access_menu_alter | Implements hook_menu_alter(). |
user_settings_access_permission | Implements hook_permission(). |