function BookManager::bookTreeCheckAccess

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

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);
}

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