|
9 | 9 | use Drupal\Core\Language\LanguageInterface;
|
10 | 10 | use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
|
11 | 11 | use Drupal\Core\Session\AccountInterface;
|
| 12 | +use Drupal\graphql\GraphQL\Execution\FieldContext; |
12 | 13 | use Drupal\graphql\Plugin\GraphQL\DataProducer\DataProducerPluginBase;
|
13 | 14 | use Symfony\Component\DependencyInjection\ContainerInterface;
|
14 | 15 |
|
@@ -96,20 +97,22 @@ public function __construct(array $configuration, $pluginId, $pluginDefinition,
|
96 | 97 | * @param bool|null $access
|
97 | 98 | * @param \Drupal\Core\Session\AccountInterface|null $accessUser
|
98 | 99 | * @param string|null $accessOperation
|
| 100 | + * @param \Drupal\graphql\GraphQL\Execution\FieldContext $context |
99 | 101 | *
|
100 | 102 | * @return array|null
|
101 | 103 | */
|
102 |
| - public function resolve(EntityInterface $entity, ?bool $access, ?AccountInterface $accessUser, ?string $accessOperation) { |
| 104 | + public function resolve(EntityInterface $entity, ?bool $access, ?AccountInterface $accessUser, ?string $accessOperation, FieldContext $context) { |
103 | 105 | if ($entity instanceof TranslatableInterface && $entity->isTranslatable()) {
|
104 | 106 | $languages = $entity->getTranslationLanguages();
|
105 | 107 |
|
106 |
| - return array_map(function (LanguageInterface $language) use ($entity, $access, $accessOperation, $accessUser) { |
| 108 | + return array_map(function (LanguageInterface $language) use ($entity, $access, $accessOperation, $accessUser, $context) { |
107 | 109 | $langcode = $language->getId();
|
108 | 110 | $entity = $entity->getTranslation($langcode);
|
109 | 111 | $entity->addCacheContexts(["static:language:{$langcode}"]);
|
110 | 112 | if ($access) {
|
111 | 113 | /** @var \Drupal\Core\Access\AccessResultInterface $accessResult */
|
112 | 114 | $accessResult = $entity->access($accessOperation, $accessUser, TRUE);
|
| 115 | + $context->addCacheableDependency($accessResult); |
113 | 116 | if (!$accessResult->isAllowed()) {
|
114 | 117 | return NULL;
|
115 | 118 | }
|
|
0 commit comments