<?php
namespace App\Serializer;
use ApiPlatform\Serializer\SerializerContextBuilderInterface;
use App\Security\UserSecurityHelper;
use Symfony\Component\HttpFoundation\Request;
readonly class ApiNormalizationContextBuilder implements SerializerContextBuilderInterface
{
public function __construct(
private SerializerContextBuilderInterface $decorated,
private UserSecurityHelper $securityHelper
) {
}
public function createFromRequest(Request $request, bool $normalization, array $extractedAttributes = null): array
{
$context = $this->decorated->createFromRequest($request, $normalization, $extractedAttributes);
if (array_key_exists('groups', $context) === false) {
return $context;
}
if ($this->securityHelper->isGranted('ROLE_GALAB_API_USER') === false) {
return $context;
}
$context['groups'][] = 'galab_api';
return $context;
}
}