Commit 5c82d266 authored by Niels Sluijs's avatar Niels Sluijs
Browse files

Issue #3301428 by Watergate: Use safe-list pattern collection event to provide...

Issue #3301428 by Watergate: Use safe-list pattern collection event to provide patterns for the Vendor Stream Wrapper module
parent fdb17045
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\ssch\EventSubscriber;

use Drupal\vendor_stream_wrapper\Event\VendorStreamWrapperCollectSafeListRegexPatternsEvent;
use Drupal\vendor_stream_wrapper\Event\VendorStreamWrapperEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Provides safe-list patterns for vendor library highlight files.
 */
class ServerSidedCodeHighlightingEventSubscriber implements EventSubscriberInterface {

  /**
   * Sets the patterns for vendor files that should be publicly available.
   *
   * @param \Drupal\vendor_stream_wrapper\Event\VendorStreamWrapperCollectSafeListRegexPatternsEvent $event
   *   The event object storing the patterns for files/directories of the vendor
   *   directory that should be publicly accessible.
   */
  public function setSafeListRegexPatterns(VendorStreamWrapperCollectSafeListRegexPatternsEvent $event): void {
    $event->getVendorStreamWrapperManager()->addSafeListRegexPatterns([
      '/^scrivo\/highlight\.php\/styles\/.*\.(css|png|jpg)$/',
    ]);
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents(): array {
    return [
      VendorStreamWrapperEvents::COLLECT_SAFE_LIST_REGEX_PATTERNS => 'setSafeListRegexPatterns',
    ];
  }

}
+4 −0
Original line number Diff line number Diff line
@@ -5,3 +5,7 @@ services:
  ssch.server_sided_code_highlighting:
    class: Drupal\ssch\Service\ServerSidedCodeHighlightingService
    arguments: ['@logger.channel.ssch']
  ssch.event_subscriber:
    class: Drupal\ssch\EventSubscriber\ServerSidedCodeHighlightingEventSubscriber
    tags:
      - { name: event_subscriber }