You are here

function book_access_node_access_records in Book access 5

Same name and namespace in other branches
  1. 6.2 book_access.module \book_access_node_access_records()
  2. 6 book_access.module \book_access_node_access_records()
  3. 7.2 book_access.module \book_access_node_access_records()
  4. 1.x book_access.module \book_access_node_access_records()

Implements hook_node_access_records().

Returns a list of grant records for the passed in book node object. If we have a book child page, we return the access settings of the top level parent. Checks to see if maybe we're being disabled.

1 call to book_access_node_access_records()
_book_access_build_node_grants in ./book_access.module
Somewhat redundant node grants function to allow us to set a node's grants when a book outline is modified.

File

./book_access.module, line 109
Allows access control for Drupal book nodes.

Code

function book_access_node_access_records($node) {
  if (!book_access_enabled()) {
    return;
  }
  if ($node->type == 'book') {
    $parent_nid = _book_access_get_book_nid($node->nid);
    $result = db_query('SELECT * FROM {book_access} WHERE nid = %d', $parent_nid);
    while ($grant = db_fetch_object($result)) {
      $grants[] = array(
        'realm' => 'book_access',
        'gid' => $grant->rid,
        'grant_view' => $grant->grant_view,
        'grant_update' => $grant->grant_update,
        'grant_delete' => $grant->grant_delete,
        'priority' => BOOK_ACCESS_GRANT_PRIORITY,
      );
    }
    return $grants;
  }
}