diff --git a/core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php b/core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php index 8cb6795..2d16771 100644 --- a/core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php +++ b/core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php @@ -135,10 +135,21 @@ public function checkNodeAccess(array $tree) { // These could be serial node IDs or UUIDs. $node_identifiers = array_keys($node_links); + $nids = []; + $uuids = []; + foreach ($node_identifiers as $node_identifier) { + if (is_int($node_identifier)) { + array_push($nids, $node_identifier); + } + else { + array_push($uuids, $node_identifier); + } + } + $query = $this->queryFactory->get('node'); $group = $query->orConditionGroup() - ->condition('nid', $node_identifiers, 'IN') - ->condition('uuid', $node_identifiers, 'IN'); + ->condition('nid', $nids, 'IN') + ->condition('uuid', $uuids, 'IN'); $query->condition($group); // Allows admins to view all nodes, by both disabling node_access diff --git a/core/tests/Drupal/Tests/Core/Menu/DefaultMenuLinkTreeManipulatorsTest.php b/core/tests/Drupal/Tests/Core/Menu/DefaultMenuLinkTreeManipulatorsTest.php index 24aa65f..7c0cbe4 100644 --- a/core/tests/Drupal/Tests/Core/Menu/DefaultMenuLinkTreeManipulatorsTest.php +++ b/core/tests/Drupal/Tests/Core/Menu/DefaultMenuLinkTreeManipulatorsTest.php @@ -301,7 +301,7 @@ public function testCheckNodeAccess() { ->willReturn($condition); $condition->expects($this->at(1)) ->method('condition') - ->with('uuid', array(1, 2, 3, 4)) + ->with('uuid', array()) ->willReturn($condition); $query->expects($this->at(1)) ->method('condition')