Same name and namespace in other branches
  1. 10 core/modules/node/node.api.php \hook_node_grants()
  2. 4.6.x developer/hooks/core.php \hook_node_grants()
  3. 4.7.x developer/hooks/core.php \hook_node_grants()
  4. 6.x developer/hooks/core.php \hook_node_grants()
  5. 7.x modules/node/node.api.php \hook_node_grants()
  6. 8.9.x core/modules/node/node.api.php \hook_node_grants()
  7. 9 core/modules/node/node.api.php \hook_node_grants()

Inform the node access system what permissions the user has.

This hook is for implementation by node access modules. In addition to managing access rights for nodes, the node access module must tell the node access system what 'grant IDs' the current user has. In many cases, the grant IDs will simply be role IDs, but grant IDs can be arbitrary based upon the module.

For example, modules can maintain their own lists of users, where each list has an ID. In that case, the module could return a list of all IDs of all lists that the current user is a member of.

A node access module may implement as many realms as necessary to properly define the access privileges for the nodes.

Parameters

$user: The user object whose grants are requested.

$op: The node operation to be performed, such as "view", "update", or "delete".

Return value

An array whose keys are "realms" of grants such as "user" or "role", and whose values are linear lists of grant IDs.

For a detailed example, see node_access_example.module.

Related topics

1 function implements hook_node_grants()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

node_access_example_node_grants in developer/examples/node_access_example.module
Implementation of hook_node_grants().
1 invocation of hook_node_grants()
node_access_grants in modules/node/node.module
Fetch an array of permission IDs granted to the given user ID.

File

developer/hooks/core.php, line 811
These are the hooks that are invoked by the Drupal core.

Code

function hook_node_grants($account, $op) {
  if (user_access('access private content', $account)) {
    $grants['example'] = array(
      1,
    );
  }
  $grants['example_owner'] = array(
    $user->uid,
  );
  return $grants;
}