From 8f8509560cc89982cf46ad635f3ac6152aeb3cb0 Mon Sep 17 00:00:00 2001 From: Eric Bremner <ebremner@uwaterloo.ca> Date: Mon, 19 Sep 2022 13:39:22 -0400 Subject: [PATCH] ISTWCMS-5753: adding DI for uw content report --- src/Controller/UwDownloadCsvController.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Controller/UwDownloadCsvController.php b/src/Controller/UwDownloadCsvController.php index 58412d2c..ffd67263 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'); -- GitLab