custom/plugins/SwagPlatformSecurity/src/Subscriber/AdminSecurityFixesProvider.php line 21

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Swag\Security\Subscriber;
  3. use Swag\Security\Components\State;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  6. class AdminSecurityFixesProvider
  7. {
  8. /**
  9. * @var State
  10. */
  11. private $state;
  12. public function __construct(State $state)
  13. {
  14. $this->state = $state;
  15. }
  16. public function __invoke(ResponseEvent $event)
  17. {
  18. $route = $event->getRequest()->attributes->get('_route');
  19. if ($route !== 'api.info.config') {
  20. return;
  21. }
  22. $context = json_decode($event->getResponse()->getContent(), true);
  23. $context['swagSecurity'] = array_map(function ($state) {
  24. return $state::getTicket();
  25. }, $this->state->getActiveFixes());
  26. $event->setResponse(new JsonResponse($context));
  27. }
  28. }