function BookManager::bookTreeCheckAccess

Same name in this branch
  1. 10 core/modules/book/src/ProxyClass/BookManager.php \Drupal\book\ProxyClass\BookManager::bookTreeCheckAccess()
Same name and namespace in other branches
  1. 9 core/modules/book/src/BookManager.php \Drupal\book\BookManager::bookTreeCheckAccess()
  2. 8.9.x core/modules/book/src/BookManager.php \Drupal\book\BookManager::bookTreeCheckAccess()
  3. 11.x core/modules/book/src/ProxyClass/BookManager.php \Drupal\book\ProxyClass\BookManager::bookTreeCheckAccess()
  4. 11.x core/modules/book/src/BookManager.php \Drupal\book\BookManager::bookTreeCheckAccess()

Checks access and performs dynamic operations for each link in the tree.

Parameters

array $tree: The book tree you wish to operate on.

array $node_links: A collection of node link references generated from $tree by menu_tree_collect_node_links().

Overrides BookManagerInterface::bookTreeCheckAccess

2 calls to BookManager::bookTreeCheckAccess()
BookManager::bookSubtreeData in core/modules/book/src/BookManager.php
Gets the data representing a subtree of the book hierarchy.
BookManager::bookTreeBuild in core/modules/book/src/BookManager.php
Builds a book tree, translates links, and checks access.

File

core/modules/book/src/BookManager.php, line 1000

Class

BookManager
Defines a book manager.

Namespace

Drupal\book

Code

public function bookTreeCheckAccess(&$tree, $node_links = []) {
  if ($node_links) {
    // @todo Extract that into its own method.
    $nids = array_keys($node_links);
    // @todo This should be actually filtering on the desired node status
    //   field language and just fall back to the default language.
    $book_links = $this->bookOutlineStorage
      ->loadMultiple($nids);
    foreach ($book_links as $book_link) {
      $nid = $book_link['nid'];
      foreach ($node_links[$nid] as $menu_link_id => $link) {
        $node_links[$nid][$menu_link_id]['access'] = TRUE;
      }
    }
  }
  $this->doBookTreeCheckAccess($tree);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.