You are here

function multiversion_query_taxonomy_term_access_alter in Multiversion 8.2

Implements hook_query_TAG_alter().

See also

\Drupal\taxonomy\TermStorage::loadTree().

File

./multiversion.module, line 342

Code

function multiversion_query_taxonomy_term_access_alter(AlterableInterface $query) {
  $active_workspace = \Drupal::service('workspaces.manager')
    ->getActiveWorkspace();
  if (!$active_workspace
    ->isDefaultWorkspace() && !$query
    ->hasTag('entity_query_taxonomy_term')) {
    $workspace_association_table = 'workspace_association';
    $query
      ->leftJoin($workspace_association_table, $workspace_association_table, "%alias.target_entity_type_id = 'taxonomy_term' AND %alias.target_entity_id = t.tid");
    $query
      ->condition($query
      ->orConditionGroup()
      ->condition("{$workspace_association_table}.workspace", $active_workspace
      ->id())
      ->condition("{$workspace_association_table}.workspace", NULL, 'IS'));
  }
}