diff --git a/src/Controller/UwDownloadCsvController.php b/src/Controller/UwDownloadCsvController.php index 58412d2c3362ec194059d65b08b0c971c1e0aec7..ffd672634589f658e8cac320a7711e2641ac8b91 100644 --- a/src/Controller/UwDownloadCsvController.php +++ b/src/Controller/UwDownloadCsvController.php @@ -5,6 +5,7 @@ namespace Drupal\uw_cfg_common\Controller; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\path_alias\AliasManager; +use Drupal\transliterate_filenames\SanitizeName; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; @@ -27,6 +28,13 @@ class UwDownloadCsvController extends ControllerBase { */ protected $pathAlias; + /** + * Sanitize name. + * + * @var Drupal\transliterate_filenames\SanitizeName + */ + protected $sanitizeName; + /** * CSV Report constructor. * @@ -34,13 +42,18 @@ class UwDownloadCsvController extends ControllerBase { * The entity type manager. * @param Drupal\path_alias\AliasManager $pathAlias * The path alias. + * @param Drupal\transliterate_filenames\SanitizeName $sanitizeName + * The sanitize name. */ public function __construct( EntityTypeManagerInterface $entityTypeManager, - AliasManager $pathAlias + AliasManager $pathAlias, + SanitizeName $sanitizeName ) { + $this->entityTypeManager = $entityTypeManager; $this->pathAlias = $pathAlias; + $this->sanitizeName = $sanitizeName; } /** @@ -49,7 +62,8 @@ class UwDownloadCsvController extends ControllerBase { public static function create(ContainerInterface $container) { return new static( $container->get('entity_type.manager'), - $container->get('path_alias.manager') + $container->get('path_alias.manager'), + $container->get('transliterate_filenames.sanitize_name') ); } @@ -114,8 +128,9 @@ class UwDownloadCsvController extends ControllerBase { // Determine the filename for the CSV. $sitename = \Drupal::config('system.site')->get('name'); $filename = $sitename . '_content_report.csv'; + // Make sure we are using a safe filename. - $filename = \Drupal::service('transliterate_filenames.sanitize_name')->sanitizeFilename($filename); + $filename = $this->sanitizeName->sanitizeFilename($filename); // Set the headers for the CSV. $response->headers->set('Content-Type', 'text/csv');