user_menu

5 user.module user_menu($may_cache)
6 user.module user_menu()
7 user.module user_menu()
8 user.module user_menu()

Implementation of hook_menu().

File

modules/user/user.module, line 907
Enables the user registration and login system.

Code

function user_menu() {
  $items['user/autocomplete'] = array(
    'title' => 'User autocomplete', 
    'page callback' => 'user_autocomplete', 
    'access callback' => 'user_access', 
    'access arguments' => array('access user profiles'), 
    'type' => MENU_CALLBACK, 
    'file' => 'user.pages.inc',
  );

  // Registration and login pages.
  $items['user'] = array(
    'title' => 'User account', 
    'page callback' => 'user_page', 
    'access callback' => TRUE, 
    'type' => MENU_CALLBACK, 
    'file' => 'user.pages.inc',
  );

  $items['user/login'] = array(
    'title' => 'Log in', 
    'access callback' => 'user_is_anonymous', 
    'type' => MENU_DEFAULT_LOCAL_TASK,
  );

  $items['user/register'] = array(
    'title' => 'Create new account', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('user_register'), 
    'access callback' => 'user_register_access', 
    'type' => MENU_LOCAL_TASK, 
    'file' => 'user.pages.inc',
  );

  $items['user/password'] = array(
    'title' => 'Request new password', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('user_pass'), 
    'access callback' => 'user_is_anonymous', 
    'type' => MENU_LOCAL_TASK, 
    'file' => 'user.pages.inc',
  );
  $items['user/reset/%/%/%'] = array(
    'title' => 'Reset password', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('user_pass_reset', 2, 3, 4), 
    'access callback' => TRUE, 
    'type' => MENU_CALLBACK, 
    'file' => 'user.pages.inc',
  );

  // Admin user pages.
  $items['admin/user'] = array(
    'title' => 'User management', 
    'description' => "Manage your site's users, groups and access to site features.", 
    'position' => 'left', 
    'page callback' => 'system_admin_menu_block_page', 
    'access arguments' => array('access administration pages'), 
    'file' => 'system.admin.inc', 
    'file path' => drupal_get_path('module', 'system'),
  );
  $items['admin/user/user'] = array(
    'title' => 'Users', 
    'description' => 'List, add, and edit users.', 
    'page callback' => 'user_admin', 
    'page arguments' => array('list'), 
    'access arguments' => array('administer users'), 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/user/list'] = array(
    'title' => 'List', 
    'type' => MENU_DEFAULT_LOCAL_TASK, 
    'weight' => -10,
  );
  $items['admin/user/user/create'] = array(
    'title' => 'Add user', 
    'page arguments' => array('create'), 
    'access arguments' => array('administer users'), 
    'type' => MENU_LOCAL_TASK, 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/settings'] = array(
    'title' => 'User settings', 
    'description' => 'Configure default behavior of users, including registration requirements, e-mails, and user pictures.', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('user_admin_settings'), 
    'access arguments' => array('administer users'), 
    'file' => 'user.admin.inc',
  );

  // Admin access pages.
  $items['admin/user/permissions'] = array(
    'title' => 'Permissions', 
    'description' => 'Determine access to features by selecting permissions for roles.', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('user_admin_perm'), 
    'access arguments' => array('administer permissions'), 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/roles'] = array(
    'title' => 'Roles', 
    'description' => 'List, edit, or add user roles.', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('user_admin_new_role'), 
    'access arguments' => array('administer permissions'), 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/roles/edit'] = array(
    'title' => 'Edit role', 
    'page arguments' => array('user_admin_role'), 
    'access arguments' => array('administer permissions'), 
    'type' => MENU_CALLBACK, 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/rules'] = array(
    'title' => 'Access rules', 
    'description' => 'List and create rules to disallow usernames, e-mail addresses, and IP addresses.', 
    'page callback' => 'user_admin_access', 
    'access arguments' => array('administer permissions'), 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/rules/list'] = array(
    'title' => 'List', 
    'type' => MENU_DEFAULT_LOCAL_TASK, 
    'weight' => -10,
  );
  $items['admin/user/rules/add'] = array(
    'title' => 'Add rule', 
    'page callback' => 'user_admin_access_add', 
    'access arguments' => array('administer permissions'), 
    'type' => MENU_LOCAL_TASK, 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/rules/check'] = array(
    'title' => 'Check rules', 
    'page callback' => 'user_admin_access_check', 
    'access arguments' => array('administer permissions'), 
    'type' => MENU_LOCAL_TASK, 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/rules/edit'] = array(
    'title' => 'Edit rule', 
    'page callback' => 'user_admin_access_edit', 
    'access arguments' => array('administer permissions'), 
    'type' => MENU_CALLBACK, 
    'file' => 'user.admin.inc',
  );
  $items['admin/user/rules/delete'] = array(
    'title' => 'Delete rule', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('user_admin_access_delete_confirm'), 
    'access arguments' => array('administer permissions'), 
    'type' => MENU_CALLBACK, 
    'file' => 'user.admin.inc',
  );

  $items['logout'] = array(
    'title' => 'Log out', 
    'access callback' => 'user_is_logged_in', 
    'page callback' => 'user_logout', 
    'weight' => 10, 
    'file' => 'user.pages.inc',
  );

  $items['user/%user_uid_optional'] = array(
    'title' => 'My account', 
    'title callback' => 'user_page_title', 
    'title arguments' => array(1), 
    'page callback' => 'user_view', 
    'page arguments' => array(1), 
    'access callback' => 'user_view_access', 
    'access arguments' => array(1), 
    'parent' => '', 
    'file' => 'user.pages.inc',
  );

  $items['user/%user/view'] = array(
    'title' => 'View', 
    'type' => MENU_DEFAULT_LOCAL_TASK, 
    'weight' => -10,
  );

  $items['user/%user/delete'] = array(
    'title' => 'Delete', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('user_confirm_delete', 1), 
    'access callback' => 'user_delete_access', 
    'access arguments' => array(1), 
    'type' => MENU_CALLBACK, 
    'file' => 'user.pages.inc',
  );

  $items['user/%user_category/edit'] = array(
    'title' => 'Edit', 
    'page callback' => 'user_edit', 
    'page arguments' => array(1), 
    'access callback' => 'user_edit_access', 
    'access arguments' => array(1), 
    'type' => MENU_LOCAL_TASK, 
    'load arguments' => array('%map', '%index'), 
    'file' => 'user.pages.inc',
  );

  $items['user/%user_category/edit/account'] = array(
    'title' => 'Account', 
    'type' => MENU_DEFAULT_LOCAL_TASK, 
    'load arguments' => array('%map', '%index'),
  );

  $empty_account = new stdClass();
  if (($categories = _user_categories($empty_account)) && (count($categories) > 1)) {
    foreach ($categories as $key => $category) {
      // 'account' is already handled by the MENU_DEFAULT_LOCAL_TASK.
      if ($category['name'] != 'account') {
        $items['user/%user_category/edit/' . $category['name']] = array(
          'title callback' => 'check_plain', 
          'title arguments' => array($category['title']), 
          'page callback' => 'user_edit', 
          'page arguments' => array(1, 3), 
          'access callback' => isset($category['access callback']) ? $category['access callback'] : 'user_edit_access', 
          'access arguments' => isset($category['access arguments']) ? $category['access arguments'] : array(1), 
          'type' => MENU_LOCAL_TASK, 
          'weight' => $category['weight'], 
          'load arguments' => array('%map', '%index'), 
          'tab_parent' => 'user/%/edit', 
          'file' => 'user.pages.inc',
        );
      }
    }
  }
  return $items;
}
Login or register to post comments