src/Normalizer/RelationshipItemNormalizer.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Normalizer/RelationshipItemNormalizer.php b/src/Normalizer/RelationshipItemNormalizer.php index 8e1347e..7047327 100644 --- a/src/Normalizer/RelationshipItemNormalizer.php +++ b/src/Normalizer/RelationshipItemNormalizer.php @@ -4,6 +4,7 @@ namespace Drupal\jsonapi\Normalizer; use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Entity\EntityInterface; +use Drupal\jsonapi\Exception\EntityAccessDeniedHttpException; use Drupal\jsonapi\Normalizer\Value\RelationshipItemNormalizerValue; use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface; use Drupal\jsonapi\Controller\EntityResource; @@ -82,6 +83,9 @@ class RelationshipItemNormalizer extends FieldItemNormalizer { if (!empty($context['include']) && in_array($host_field_name, $context['include']) && $target_entity !== NULL) { $context = $this->buildSubContext($context, $target_entity, $host_field_name); $entity_and_access = EntityResource::getEntityAndAccess($target_entity); + if ($entity_and_access['entity'] instanceof EntityAccessDeniedHttpException) { + $entity_and_access['entity'] = new EntityAccessDeniedHttpException($target_entity, $entity_and_access['access'], "/data/relationships/$host_field_name", $entity_and_access['entity']->getMessage()); + } $included_normalizer_value = $this ->jsonapiDocumentToplevelNormalizer ->buildNormalizerValue($entity_and_access['entity'], $format, $context);