You are here

function administerusersbyrole_menu_alter in Administer Users by Role 7.2

Same name and namespace in other branches
  1. 7 administerusersbyrole.module \administerusersbyrole_menu_alter()

Implements hook_menu_alter().

File

./administerusersbyrole.module, line 53
Provides fine-grained permissions for creating, editing, and deleting users.

Code

function administerusersbyrole_menu_alter(&$items) {

  // Dependency was added on chain_menu_access and, immediately after an update, the dependency may be missing.
  // Make sure we don't render the whole website unusable in this case.
  if (!module_exists('chain_menu_access')) {
    return;
  }
  chain_menu_access_chain($items, 'user/%user', '_administerusersbyrole_check_access', array(
    1,
    'edit',
  ), TRUE);
  chain_menu_access_chain($items, 'user/%user/edit', '_administerusersbyrole_check_access', array(
    1,
    'edit',
  ), TRUE);
  chain_menu_access_chain($items, 'user/%user/cancel', '_administerusersbyrole_check_access', array(
    1,
    'cancel',
  ), TRUE);
  $items['user/%user/cancel']['page callback'] = 'administerusersbyrole_cancel_confirm_wrapper';
  $items['user/%user/cancel']['page arguments'] = array(
    1,
  );
  chain_menu_access_chain($items, 'admin/people', 'user_access', array(
    'access users overview',
  ), TRUE);

  // The code in the user module to create a user relies on 'administer users' permission being set, so pass an argument to elevate permissions.
  chain_menu_access_chain($items, 'admin/people/create', '_administerusersbyrole_can_create_users', array(
    'elevate',
  ), TRUE);

  // Compatibility with other contrib modules.
  // If 'password_policy_password_tab' module (a sub-module of 'password_policy') is enabled, then check and update access.
  if (module_exists('password_policy_password_tab')) {
    chain_menu_access_chain($items, 'user/%user/password', '_administerusersbyrole_check_access', array(
      1,
      'edit',
    ), TRUE);
  }
}