You are here

public function BookManager::bookTreeCheckAccess in Drupal 8

Same name and namespace in other branches
  1. 9 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 960

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.
    $nids = \Drupal::entityQuery('node')
      ->condition('nid', $nids, 'IN')
      ->condition('status', 1)
      ->execute();
    foreach ($nids as $nid) {
      foreach ($node_links[$nid] as $mlid => $link) {
        $node_links[$nid][$mlid]['access'] = TRUE;
      }
    }
  }
  $this
    ->doBookTreeCheckAccess($tree);
}