@@ 95-109 (lines=15) @@ | ||
92 | $entityType = $this->entityTypeManager->getDefinition($pluginDefinition['entity_type']); |
|
93 | yield (new CacheableValue(NULL))->addCacheTags($entityType->getListCacheTags()); |
|
94 | } |
|
95 | else { |
|
96 | /** @var \Drupal\Core\Entity\EntityInterface $entity */ |
|
97 | $access = $entity->access('view', NULL, TRUE); |
|
98 | ||
99 | if ($access->isAllowed()) { |
|
100 | if (isset($args['language']) && $args['language'] != $entity->language()->getId()) { |
|
101 | $entity = $this->entityRepository->getTranslationFromContext($entity, $args['language']); |
|
102 | } |
|
103 | ||
104 | yield $entity->addCacheableDependency($access); |
|
105 | } |
|
106 | else { |
|
107 | yield new CacheableValue(NULL, [$access]); |
|
108 | } |
|
109 | } |
|
110 | }; |
|
111 | } |
|
112 |
@@ 89-101 (lines=13) @@ | ||
86 | yield new CacheableValue(NULL, [$metadata]); |
|
87 | } |
|
88 | /** @var \Drupal\Core\Access\AccessResultInterface $access */ |
|
89 | else if (($access = $entity->access('view', NULL, TRUE)) && $access->isAllowed()) { |
|
90 | if (isset($args['language']) && $args['language'] != $entity->language()->getId()) { |
|
91 | $entity = $this->entityRepository->getTranslationFromContext($entity, $args['language']); |
|
92 | } |
|
93 | ||
94 | yield new CacheableValue($entity, [$access]); |
|
95 | } |
|
96 | else { |
|
97 | // If the entity exists but we do not grant access to it, we still want |
|
98 | // to have it's cache metadata in the output because future changes to |
|
99 | // the entity might affect its visibility for the user. |
|
100 | yield new CacheableValue(NULL, [$access]); |
|
101 | } |
|
102 | } |
|
103 | ||
104 | } |