class NodeSelection extends DefaultSelection
{ /**
* {@inheritdoc}
*/
protected function buildEntityQuery($match = NULL,
$match_operator = 'CONTAINS'
) { $query = parent::
buildEntityQuery($match,
$match_operator);
// Adding the 'node_access' tag is sadly insufficient for nodes: core
// requires us to also know about the concept of 'published' and
// 'unpublished'. We need to do that as long as there are no access control
// modules in use on the site. As long as one access control module is there,
// it is supposed to handle this check.
if (!
$this->currentUser->
hasPermission('bypass node access'
) && !
$this->moduleHandler->
hasImplementations('node_grants'
)) { $query->
condition('status', NodeInterface::PUBLISHED
);
} return $query;
}