Skip navigation
Help

hook_access

6 node.php hook_access($op, $node, $account)

Define access restrictions.

This hook allows node modules to limit access to the node types they define.

For a detailed usage example, see node_example.module.

Parameters

$op: The operation to be performed. Possible values:

  • "create"
  • "delete"
  • "update"
  • "view"

$node: The node on which the operation is to be performed, or, if it does not yet exist, the type of node to be created.

$account: A user object representing the user for whom the operation is to be performed.

Return value

TRUE if the operation is to be allowed; FALSE if the operation is to be denied; NULL to not override the settings in the node_access table, or access control modules.

The administrative account (user ID #1) always passes any access check, so this hook is not called in that case. If this hook is not defined for a node type, all access checks will fail, so only the administrator will be able to see content of that type. However, users with the "administer nodes" permission may always view and edit content through the administrative interface.

See also

http://api.drupal.org/api/group/node_access/6

Related topics

34 functions implement hook_access()

1 invocation of hook_access()

File

documentation/developer/hooks/node.php, line 161
These hooks are defined by node modules, modules that define a new kind of node.

Code

function hook_access($op, $node, $account) {
  if ($op == 'create') {
    return user_access('create stories', $account);
  }

  if ($op == 'update' || $op == 'delete') {
    if (user_access('edit own stories', $account) && ($account->uid == $node->uid)) {
      return TRUE;
    }
  }
}