node_access_grants

Versions
4.6 – 5
node_access_grants($op, $uid = NULL)
6 – 7
node_access_grants($op, $account = NULL)

Fetch an array of permission IDs granted to the given user ID.

The implementation here provides only the universal "all" grant. A node access module should implement hook_node_grants() to provide a grant list for the user.

After the default grants have been loaded, we allow modules to alter the grants array by reference. This hook allows for complex business logic to be applied when integrating multiple node access modules.

Parameters

$op The operation that the user is trying to perform.

$account The user object for the user performing the operation. If omitted, the current user is used.

Return value

An associative array in which the keys are realms, and the values are arrays of grants for those realms.

Related topics

▾ 4 functions call node_access_grants()

hook_query_TAG_alter in modules/system/system.api.php
Perform alterations to a structured query for a given tag.
node_access in modules/node/node.module
Determine whether the current user may perform the given operation on the specified node.
node_access_view_all_nodes in modules/node/node.module
Determine whether the user has a global viewing grant for all nodes.
node_query_node_access_alter in modules/node/node.module
Implement hook_query_TAG_alter().

Code

modules/node/node.module, line 2597

<?php
function node_access_grants($op, $account = NULL) {

  if (!isset($account)) {
    $account = $GLOBALS['user'];
  }

  // Fetch node access grants from other modules.
  $grants = module_invoke_all('node_grants', $account, $op);
  // Allow modules to alter the assigned grants.
  drupal_alter('node_grants', $grants, $account, $op);

  return array_merge(array('all' => array(0)), $grants);
}
?>
Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.