function NodeSelection::buildEntityQuery
Builds an EntityQuery to get referenceable entities.
Parameters
string|null $match: (Optional) Text to match the label against. Defaults to NULL.
string $match_operator: (Optional) The operation the matching should be done with. Defaults to "CONTAINS".
Return value
\Drupal\Core\Entity\Query\QueryInterface The EntityQuery object with the basic conditions and sorting applied to it.
Overrides DefaultSelection::buildEntityQuery
File
- 
              core/modules/ node/ src/ Plugin/ EntityReferenceSelection/ NodeSelection.php, line 24 
Class
- NodeSelection
- Provides specific access control for the node entity type.
Namespace
Drupal\node\Plugin\EntityReferenceSelectionCode
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;
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
