function TemporaryQueryGuard::collectFilteredFields

Same name and namespace in other branches
  1. 8.9.x core/modules/jsonapi/src/Access/TemporaryQueryGuard.php \Drupal\jsonapi\Access\TemporaryQueryGuard::collectFilteredFields()
  2. 10 core/modules/jsonapi/src/Access/TemporaryQueryGuard.php \Drupal\jsonapi\Access\TemporaryQueryGuard::collectFilteredFields()
  3. 11.x core/modules/jsonapi/src/Access/TemporaryQueryGuard.php \Drupal\jsonapi\Access\TemporaryQueryGuard::collectFilteredFields()

Recursively collects all entity query condition fields.

Entity conditions can be nested within AND and OR groups. This recursively finds all unique fields in an entity query condition.

Parameters

\Drupal\jsonapi\Query\EntityConditionGroup $group: The root entity condition group.

array $fields: Internal use only.

Return value

array An array of entity query condition field names.

1 call to TemporaryQueryGuard::collectFilteredFields()
TemporaryQueryGuard::applyAccessControls in core/modules/jsonapi/src/Access/TemporaryQueryGuard.php
Applies access controls to an entity query.

File

core/modules/jsonapi/src/Access/TemporaryQueryGuard.php, line 571

Class

TemporaryQueryGuard
Adds sufficient access control to collection queries.

Namespace

Drupal\jsonapi\Access

Code

protected static function collectFilteredFields(EntityConditionGroup $group, array $fields = []) {
    foreach ($group->members() as $member) {
        if ($member instanceof EntityConditionGroup) {
            $fields = static::collectFilteredFields($member, $fields);
        }
        else {
            $fields[] = $member->field();
        }
    }
    return array_unique($fields);
}

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