src/Serializer/ApiNormalizationContextBuilder.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Serializer;
  3. use ApiPlatform\Serializer\SerializerContextBuilderInterface;
  4. use App\Security\UserSecurityHelper;
  5. use Symfony\Component\HttpFoundation\Request;
  6. readonly class ApiNormalizationContextBuilder implements SerializerContextBuilderInterface
  7. {
  8. public function __construct(
  9. private SerializerContextBuilderInterface $decorated,
  10. private UserSecurityHelper $securityHelper
  11. ) {
  12. }
  13. public function createFromRequest(Request $request, bool $normalization, array $extractedAttributes = null): array
  14. {
  15. $context = $this->decorated->createFromRequest($request, $normalization, $extractedAttributes);
  16. if (array_key_exists('groups', $context) === false) {
  17. return $context;
  18. }
  19. if ($this->securityHelper->isGranted('ROLE_GALAB_API_USER') === false) {
  20. return $context;
  21. }
  22. $context['groups'][] = 'galab_api';
  23. return $context;
  24. }
  25. }