user_access

  1. drupal
    1. 4.7
    2. 5 user.module
    3. 6 user.module
    4. 7 user.module
Versions
4.7 – 5 user_access($string, $account = NULL)
6 user_access($string, $account = NULL, $reset = FALSE)
7 user_access($string, $account = NULL)

Determine whether the user has a given privilege.

Parameters

$string The permission, such as "administer nodes", being checked for.

$account (optional) The account to check, if not given use currently logged in user.

Return value

boolean TRUE if the current user has the requested permission.

All permission checks in Drupal should go through this function. This way, we guarantee consistent behavior, and ensure that the superuser can perform all actions.

▾ 130 functions call user_access()

aggregator_block in modules/aggregator.module
Implementation of hook_block().
aggregator_menu in modules/aggregator.module
Implementation of hook_menu().
aggregator_page_list_validate in modules/aggregator.module
archive_block in modules/archive.module
Implementation of hook_block().
archive_menu in modules/archive.module
Implementation of hook_menu().
block_admin_configure in modules/block.module
Menu callback; displays the block configuration form.
block_menu in modules/block.module
Implementation of hook_menu().
blogapi_blogger_edit_post in modules/blogapi.module
Blogging API callback. Modifies the specified blog node.
blogapi_blogger_new_post in modules/blogapi.module
Blogging API callback. Inserts a new blog post as a node.
blogapi_menu in modules/blogapi.module
blogapi_validate_user in modules/blogapi.module
Ensure that the given user has permission to edit a blog.
blog_access in modules/blog.module
Implementation of hook_access().
blog_block in modules/blog.module
Implementation of hook_block().
blog_menu in modules/blog.module
Implementation of hook_menu().
blog_page_user in modules/blog.module
Displays a Drupal page containing recent blog entries of a given user.
blog_user in modules/blog.module
Implementation of hook_user().
book_access in modules/book.module
Implementation of hook_access().
book_export_html in modules/book.module
This function is called by book_export() to generate HTML for export.
book_form in modules/book.module
Implementation of hook_form().
book_link in modules/book.module
Implementation of hook_link().
book_menu in modules/book.module
Implementation of hook_menu().
book_nodeapi in modules/book.module
Implementation of hook_nodeapi().
book_submit in modules/book.module
Implementation of hook_submit().
book_toc in modules/book.module
Returns an array of titles and nid entries of book pages in table of contents order.
comment_access in modules/comment.module
This is *not* a hook_access() implementation. This function is called to determine whether the current user has access to a particular comment.
comment_block in modules/comment.module
Implementation of hook_block().
comment_configure in modules/comment.module
Menu callback; presents the comment settings page.
comment_form in modules/comment.module
comment_form_alter in modules/comment.module
comment_link in modules/comment.module
Implementation of hook_link().
comment_links in modules/comment.module
comment_menu in modules/comment.module
Implementation of hook_menu().
comment_render in modules/comment.module
comment_reply in modules/comment.module
comment_save in modules/comment.module
Accepts a submission of new or changed comment content.
contact_mail_user in modules/contact.module
Personal contact page.
contact_menu in modules/contact.module
Implementation of hook_menu().
fileupload_access in developer/examples/fileupload.module
Implementation of hook_access.
fileupload_file_download in developer/examples/fileupload.module
Implementation of hook_file_download.
fileupload_menu in developer/examples/fileupload.module
Implementation of hook_menu.
filter_access in modules/filter.module
Returns true if the user is allowed to access this format.
filter_formats in modules/filter.module
Retrieve a list of input formats.
filter_menu in modules/filter.module
Implementation of hook_menu().
forum_access in modules/forum.module
Implementation of hook_access().
forum_block in modules/forum.module
Implementation of hook_block().
forum_menu in modules/forum.module
Implementation of hook_menu().
help_menu in modules/help.module
Implementation of hook_menu().
hook_access in developer/hooks/node.php
Define access restrictions.
hook_file_download in developer/hooks/core.php
Allow file downloads.
hook_menu in developer/hooks/core.php
Define menu items and page callbacks.
hook_nodeapi in developer/hooks/core.php
Act on nodes defined by other modules.
hook_node_grants in developer/hooks/core.php
Grant access to nodes.
locale_menu in modules/locale.module
Implementation of hook_menu().
menu_form_alter in modules/menu.module
Implementation of hook_form_alter(). Add menu item fields to the node form.
menu_menu in modules/menu.module
Implementation of hook_menu().
menu_nodeapi in modules/menu.module
Implementation of hook_nodeapi().
menu_primary_links in includes/menu.inc
Returns an array containing the primary links. Can optionally descend from the root of the Primary links menu towards the current node for a specified number of levels and return that submenu. Used to generate a primary/secondary menu from different…
node_access in modules/node.module
Determine whether the current user may perform the given operation on the specified node.
node_access_example_form_alter in developer/examples/node_access_example.module
Implementation of hook_form_alter().
node_access_example_node_grants in developer/examples/node_access_example.module
Implementation of hook_node_grants().
node_example_access in developer/examples/node_example.module
Implementation of hook_access().
node_example_menu in developer/examples/node_example.module
Implementation of hook_menu().
node_form_array in modules/node.module
Generate the node editing form array.
node_menu in modules/node.module
Implementation of hook_menu().
node_object_prepare in modules/node.module
node_revisions in modules/node.module
Menu callback for revisions related activities.
node_revision_delete in modules/node.module
Delete the revision with specified revision number. A "delete revision" nodeapi event is invoked when a revision is deleted.
node_revision_overview in modules/node.module
Generate an overview table of older revisions of a node.
node_revision_revert in modules/node.module
Revert to the revision with the specified revision number. A node and nodeapi "update" event is triggered (via the node_save() call) when a revision is reverted.
node_submit in modules/node.module
Prepare node for save and allow modules to make changes.
node_validate in modules/node.module
Perform validation checks on the given node.
page_access in modules/page.module
Implementation of hook_access().
page_example_menu in developer/examples/page_example.module
Implementation of hook_menu().
page_menu in modules/page.module
Implementation of hook_menu().
path_admin_delete_confirm in modules/path.module
Menu callback; confirms deleting an URL alias
path_form_alter in modules/path.module
Implementation of hook_form_alter().
path_menu in modules/path.module
Implementation of hook_menu().
path_nodeapi in modules/path.module
Implementation of hook_nodeapi().
poll_access in modules/poll.module
Implementation of hook_access().
poll_block in modules/poll.module
Implementation of hook_block().
poll_form in modules/poll.module
Implementation of hook_form().
poll_insert in modules/poll.module
poll_load in modules/poll.module
Implementation of hook_load().
poll_menu in modules/poll.module
Implementation of hook_menu().
profile_block in modules/profile.module
Implementation of hook_block().
profile_browse in modules/profile.module
Menu callback; display a list of user information.
profile_form_profile in modules/profile.module
profile_menu in modules/profile.module
Implementation of hook_menu().
profile_validate_profile in modules/profile.module
profile_view_field in modules/profile.module
profile_view_profile in modules/profile.module
search_block in modules/search.module
Implementation of hook_block().
search_menu in modules/search.module
Implementation of hook_menu().
statistics_block in modules/statistics.module
Implementation of hook_block().
statistics_link in modules/statistics.module
Implementation of hook_link().
statistics_menu in modules/statistics.module
Implementation of hook_menu().
story_access in modules/story.module
Implementation of hook_access().
story_menu in modules/story.module
Implementation of hook_menu().
system_menu in modules/system.module
Implementation of hook_menu().
system_theme_select_form in modules/system.module
Returns a fieldset containing the theme select form.
taxonomy_menu in modules/taxonomy.module
Implementation of hook_menu().
theme_aggregator_block_item in modules/aggregator.module
Format an individual feed item for display in the block.
theme_aggregator_feed in modules/aggregator.module
Format a news feed.
theme_forum_display in modules/forum.module
Format the forum body.
theme_get_settings in includes/theme.inc
Retrieve an associative array containing the settings for a theme.
theme_username in includes/theme.inc
Format a username.
theme_user_picture in modules/user.module
tracker_menu in modules/tracker.module
Implementation of hook_menu().
tracker_track_user in modules/tracker.module
Menu callback. Prints a listing of active nodes on the site.
upload_file_download in modules/upload.module
upload_form_alter in modules/upload.module
upload_link in modules/upload.module
Implementation of hook_link().
upload_menu in modules/upload.module
Implementation of hook_menu().
upload_nodeapi in modules/upload.module
Implementation of hook_nodeapi().
user_block in modules/user.module
Implementation of hook_block().
user_edit in modules/user.module
user_edit_form in modules/user.module
user_edit_validate in modules/user.module
user_menu in modules/user.module
Implementation of hook_menu().
user_register in modules/user.module
user_register_submit in modules/user.module
user_search in modules/user.module
Implementation of hook_search().
user_view in modules/user.module
_aggregator_page_list in modules/aggregator.module
Prints an aggregator page listing a number of feed items. Various menu callbacks use this function to print their feeds.
_menu_site_is_offline in includes/menu.inc
Returns TRUE if the site is off-line for maintenance.
_node_access_join_sql in modules/node.module
Generate an SQL join clause for use in fetching a node listing.
_node_access_where_sql in modules/node.module
Generate an SQL where clause for use in fetching a node listing.
_upload_form in modules/upload.module
_upload_prepare in modules/upload.module
Save new uploads and attach them to the node object. append file_previews to the node object as well.
_user_edit_validate in modules/user.module

Code

modules/user.module, line 336

<?php
function user_access($string, $account = NULL) {
  global $user;
  static $perm = array();

  if (is_null($account)) {
    $account = $user;
  }

  // User #1 has all privileges:
  if ($account->uid == 1) {
    return TRUE;
  }

  // To reduce the number of SQL queries, we cache the user's permissions
  // in a static variable.
  if (!isset($perm[$account->uid])) {
    $result = db_query("SELECT DISTINCT(p.perm) FROM {role} r INNER JOIN {permission} p ON p.rid = r.rid WHERE r.rid IN (%s)", implode(',', array_keys($account->roles)));

    $perm[$account->uid] = '';
    while ($row = db_fetch_object($result)) {
      $perm[$account->uid] .= "$row->perm, ";
    }
  }

  if (isset($perm[$account->uid])) {
    return strpos($perm[$account->uid], "$string, ") !== FALSE;
  }

  return FALSE;
}
?>