Same name and namespace in other branches
  1. 4.6.x developer/examples/node_example.module \node_example_access()
  2. 5.x developer/examples/node_example.module \node_example_access()

Implementation of hook_access().

Node modules may implement node_access() to determine the operations users may perform on nodes. This example uses a very common access pattern.

File

developer/examples/node_example.module, line 64
This is an example outlining how a module can be used to define a new node type.

Code

function node_example_access($op, $node) {
  global $user;
  if ($op == 'create') {

    // Only users with permission to do so may create this node type.
    return user_access('create example node');
  }

  // Users who create a node may edit or delete it later, assuming they have the
  // necessary permissions.
  if ($op == 'update' || $op == 'delete') {
    if (user_access('edit own example nodes') && $user->uid == $node->uid) {
      return TRUE;
    }
  }
}