3 declare(strict_types = 1);
42 $this->storageRepository = GeneralUtility::makeInstance(StorageRepository::class);
44 'Continue sanitizing SVG files?',
47 'sanitize, backup available',
61 return 'svgFilesSanitization';
71 return 'Sanitize existing SVG files in fileadmin folder';
81 return 'This upgrade wizard will sanitize all SVG files located in local file storages. '
82 .
'It is very likely that file contents will be changed.' .
"\n"
83 .
'Before continuing, please ensure a proper backup of *.svg and *.svgz files is in place before continuing.';
137 $this->storageRepository->findByStorageType(
'Local'),
138 function (ResourceStorage $storage) {
139 return $storage->isWritable();
151 $filter = GeneralUtility::makeInstance(FileExtensionFilter::class);
152 $filter->setAllowedFileExtensions([
'svg',
'svgz']);
154 ->setFileAndFolderNameFilters([
155 [$filter,
'filterFileList']
158 $storage->getRootLevelFolder(),
164 $storage->resetFileAndFolderNameFiltersToDefault();
171 $sanitizer = GeneralUtility::makeInstance(SvgSanitizer::class);
180 foreach ($svgFiles as $svgFile) {
181 $oldFileContent = $svgFile->getContents();
182 $newFileContent = $sanitizer->sanitizeContent($oldFileContent);
183 if ($oldFileContent !== $newFileContent) {
184 $svgFile->setContents($newFileContent);