You are here

protected function NodeGrantDatabaseStorage::buildGrantsQueryCondition in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/node/src/NodeGrantDatabaseStorage.php \Drupal\node\NodeGrantDatabaseStorage::buildGrantsQueryCondition()

Creates a query condition from an array of node access grants.

Parameters

array $node_access_grants: An array of grants, as returned by node_access_grants().

Return value

\Drupal\Core\Database\Query\Condition A condition object to be passed to $query->condition().

See also

node_access_grants()

3 calls to NodeGrantDatabaseStorage::buildGrantsQueryCondition()
NodeGrantDatabaseStorage::access in core/modules/node/src/NodeGrantDatabaseStorage.php
Determines access to nodes based on node grants.
NodeGrantDatabaseStorage::alterQuery in core/modules/node/src/NodeGrantDatabaseStorage.php
Alters a query when node access is required.
NodeGrantDatabaseStorage::checkAll in core/modules/node/src/NodeGrantDatabaseStorage.php
Checks all grants for a given account.

File

core/modules/node/src/NodeGrantDatabaseStorage.php, line 296

Class

NodeGrantDatabaseStorage
Defines a storage handler class that handles the node grants system.

Namespace

Drupal\node

Code

protected function buildGrantsQueryCondition(array $node_access_grants) {
  $grants = $this->database
    ->condition('OR');
  foreach ($node_access_grants as $realm => $gids) {
    if (!empty($gids)) {
      $and = $this->database
        ->condition('AND');
      $grants
        ->condition($and
        ->condition('gid', $gids, 'IN')
        ->condition('realm', $realm));
    }
  }
  return $grants;
}