From 2a7e59c747b4ca2bcc2d81d5f4ebaacc56592b64 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Wed, 28 Aug 2024 08:58:09 +0300 Subject: [PATCH 01/11] Revert "UHF-10462: Make sure image style requires correct derivative scheme" --- composer.json | 3 -- helfi_azure_fs.info.yml | 2 +- helfi_azure_fs.module | 5 +-- helfi_azure_fs.services.yml | 6 +--- src/AzureBlobStorageAdapter.php | 2 +- src/AzureFileSystem.php | 8 +++-- src/Flysystem/Azure.php | 2 +- src/Routing/RouteSubscriber.php | 44 -------------------------- tests/src/Unit/AzureFileSystemTest.php | 5 ++- tests/src/Unit/AzureTest.php | 7 +--- 10 files changed, 18 insertions(+), 66 deletions(-) delete mode 100644 src/Routing/RouteSubscriber.php diff --git a/composer.json b/composer.json index 6129b88..0f1078b 100644 --- a/composer.json +++ b/composer.json @@ -12,9 +12,6 @@ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "drupal/coder": "^8.3" }, - "conflict": { - "drupal/core": "<10.3" - }, "extra": { "patches": { "twistor/flysystem-stream-wrapper": { diff --git a/helfi_azure_fs.info.yml b/helfi_azure_fs.info.yml index 187bb29..5439a21 100644 --- a/helfi_azure_fs.info.yml +++ b/helfi_azure_fs.info.yml @@ -1,4 +1,4 @@ name: HELfi azure file system type: module package: Custom -core_version_requirement: ^9 || ^10 || ^11 +core_version_requirement: ^9 || ^10 diff --git a/helfi_azure_fs.module b/helfi_azure_fs.module index b632016..ce77556 100644 --- a/helfi_azure_fs.module +++ b/helfi_azure_fs.module @@ -8,6 +8,7 @@ declare(strict_types=1); use Drupal\Core\Entity\EntityTypeInterface; +use Drupal\Core\File\FileSystemInterface; use Drupal\file\FileInterface; /** @@ -15,7 +16,7 @@ use Drupal\file\FileInterface; */ function helfi_azure_fs_entity_field_storage_info_alter( &$fields, - EntityTypeInterface $entity_type, + EntityTypeInterface $entity_type ) : void { $config = Drupal::config('helfi_azure_fs.settings'); @@ -45,7 +46,7 @@ function helfi_azure_fs_file_presave(FileInterface $file) : void { $uri = $file->getFileUri(); $directory = $file_system->dirname($uri); $uri = $directory . '/' . $new_filename; - if ($new_uri = $file_system->move($file->getFileUri(), $uri)) { + if ($new_uri = $file_system->move($file->getFileUri(), $uri, FileSystemInterface::EXISTS_RENAME)) { $file->set('uri', $new_uri); $file->set('filename', $file_system->basename($new_uri)); } diff --git a/helfi_azure_fs.services.yml b/helfi_azure_fs.services.yml index 1ca267d..c354d74 100644 --- a/helfi_azure_fs.services.yml +++ b/helfi_azure_fs.services.yml @@ -1,7 +1,4 @@ services: - _defaults: - autoconfigure: true - autowire: true azure_file_system: class: Drupal\helfi_azure_fs\AzureFileSystem decorates: file_system @@ -10,5 +7,4 @@ services: - '@azure_file_system.inner' - '@stream_wrapper_manager' - '@settings' - - Drupal\helfi_azure_fs\Routing\RouteSubscriber: ~ + - '@logger.channel.file' diff --git a/src/AzureBlobStorageAdapter.php b/src/AzureBlobStorageAdapter.php index abb0bb4..d8f566e 100644 --- a/src/AzureBlobStorageAdapter.php +++ b/src/AzureBlobStorageAdapter.php @@ -65,7 +65,7 @@ class AzureBlobStorageAdapter extends AbstractAdapter { public function __construct( protected BlobRestProxy $client, protected string $container, - ?string $prefix = NULL, + ?string $prefix = NULL ) { $this->setPathPrefix($prefix); } diff --git a/src/AzureFileSystem.php b/src/AzureFileSystem.php index 668f800..fa8471e 100644 --- a/src/AzureFileSystem.php +++ b/src/AzureFileSystem.php @@ -8,6 +8,7 @@ use Drupal\Core\File\FileSystemInterface; use Drupal\Core\Site\Settings; use Drupal\Core\StreamWrapper\StreamWrapperManagerInterface; +use Psr\Log\LoggerInterface; /** * Provides Azure specific file system. @@ -37,15 +38,18 @@ final class AzureFileSystem extends FileSystem { * The stream wrapper manager. * @param \Drupal\Core\Site\Settings $settings * The settings. + * @param \Psr\Log\LoggerInterface $logger + * The logger. */ public function __construct( private FileSystemInterface $decorated, StreamWrapperManagerInterface $streamWrapperManager, Settings $settings, + LoggerInterface $logger, ) { $this->skipFsOperations = $settings::get('is_azure', FALSE); - parent::__construct($streamWrapperManager, $settings); + parent::__construct($streamWrapperManager, $settings, $logger); } /** @@ -65,7 +69,7 @@ public function mkdir( $uri, $mode = NULL, $recursive = FALSE, - $context = NULL, + $context = NULL ): bool { if (!$this->skipFsOperations) { return $this->decorated->mkdir($uri, $mode, $recursive, $context); diff --git a/src/Flysystem/Azure.php b/src/Flysystem/Azure.php index 4cb6695..24284e2 100644 --- a/src/Flysystem/Azure.php +++ b/src/Flysystem/Azure.php @@ -59,7 +59,7 @@ final class Azure implements FlysystemPluginInterface, ContainerFactoryPluginInt public function __construct( private array $configuration, private LoggerInterface $logger, - private FileUrlGeneratorInterface $fileUrlGenerator, + private FileUrlGeneratorInterface $fileUrlGenerator ) { } diff --git a/src/Routing/RouteSubscriber.php b/src/Routing/RouteSubscriber.php deleted file mode 100644 index 26672fa..0000000 --- a/src/Routing/RouteSubscriber.php +++ /dev/null @@ -1,44 +0,0 @@ -configFactory->get('helfi_azure_fs.settings'); - - // Skip if blob storage is not in use. - if (!$config->get('use_blob_storage')) { - return; - } - - // Make sure image style URL requires 'azure' derivative scheme. - if ($route = $collection->get('image.style_public')) { - $route->setDefault('required_derivative_scheme', 'azure'); - } - } - -} diff --git a/tests/src/Unit/AzureFileSystemTest.php b/tests/src/Unit/AzureFileSystemTest.php index 1938e84..51c9b8c 100644 --- a/tests/src/Unit/AzureFileSystemTest.php +++ b/tests/src/Unit/AzureFileSystemTest.php @@ -14,6 +14,7 @@ use org\bovigo\vfs\vfsStream; use Prophecy\Argument; use Prophecy\PhpUnit\ProphecyTrait; +use Psr\Log\LoggerInterface; /** * Tests AzureFileSystem. @@ -94,7 +95,9 @@ private function getSut(FileSystemInterface $decorated, Settings $settings, ?Str if (!$streamWrapperManager) { $streamWrapperManager = $this->createMock(StreamWrapperManagerInterface::class); } - return new AzureFileSystem($decorated, $streamWrapperManager, $settings); + $logger = $this->createMock(LoggerInterface::class); + + return new AzureFileSystem($decorated, $streamWrapperManager, $settings, $logger); } /** diff --git a/tests/src/Unit/AzureTest.php b/tests/src/Unit/AzureTest.php index 23ccc57..d9b4e1f 100644 --- a/tests/src/Unit/AzureTest.php +++ b/tests/src/Unit/AzureTest.php @@ -7,7 +7,6 @@ use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\File\FileUrlGeneratorInterface; use Drupal\Core\Logger\LoggerChannelFactory; -use Drupal\Core\Session\AccountInterface; use Drupal\helfi_azure_fs\Flysystem\Azure; use Drupal\Tests\UnitTestCase; use MicrosoftAzure\Storage\Common\Internal\Authentication\SharedAccessSignatureAuthScheme; @@ -16,7 +15,6 @@ use Prophecy\Argument; use Prophecy\PhpUnit\ProphecyTrait; use Psr\Log\LoggerInterface; -use Symfony\Component\HttpFoundation\RequestStack; /** * Tests Azure. @@ -39,10 +37,7 @@ public function testGetExternalUrl() : void { '/styles/test.jpg', '/styles/test).jpg', ); - $loggerFactory = new LoggerChannelFactory( - $this->prophesize(RequestStack::class)->reveal(), - $this->prophesize(AccountInterface::class)->reveal(), - ); + $loggerFactory = new LoggerChannelFactory(); $loggerFactory->addLogger($this->prophesize(LoggerInterface::class)->reveal()); $configuration = [ From 799ca1af66813d5011861a3232448f07eae3b8d6 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Wed, 28 Aug 2024 09:06:12 +0300 Subject: [PATCH 02/11] UHF-10533: Patch drupal core --- composer.json | 3 +++ patches/UHF-10533-d10-images.patch | 15 +++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 patches/UHF-10533-d10-images.patch diff --git a/composer.json b/composer.json index 0f1078b..a648d56 100644 --- a/composer.json +++ b/composer.json @@ -14,6 +14,9 @@ }, "extra": { "patches": { + "drual/core": { + "UHF-10533 D10.3 images": "./patches/UHF-10533-d10-images.patch" + }, "twistor/flysystem-stream-wrapper": { "PHP 8.2 support (https://www.drupal.org/project/flysystem/issues/3387094)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-module-helfi-azure-fs/ddb222622b92d1c2b7db975a84167a00579a1ad0/patches/3387094-add-context-property-to-stream-wrapper.patch" } diff --git a/patches/UHF-10533-d10-images.patch b/patches/UHF-10533-d10-images.patch new file mode 100644 index 0000000..723d0b0 --- /dev/null +++ b/patches/UHF-10533-d10-images.patch @@ -0,0 +1,15 @@ +diff --git a/core/modules/image/src/Controller/ImageStyleDownloadController.php b/core/modules/image/src/Controller/ImageStyleDownloadController.php +index bfc5c985d8..0461176ea9 100644 +--- a/core/modules/image/src/Controller/ImageStyleDownloadController.php ++++ b/core/modules/image/src/Controller/ImageStyleDownloadController.php +@@ -158,7 +158,9 @@ public function deliver(Request $request, $scheme, ImageStyleInterface $image_st + $derivative_scheme = $this->streamWrapperManager->getScheme($derivative_uri); + + if ($required_derivative_scheme !== $derivative_scheme) { +- throw new AccessDeniedHttpException("The scheme for this image doesn't match the scheme for the original image"); ++ // Remove 10.3 security check. Hel.fi should only serve public files, so ++ // this should be fine for use while we are working on a more permanent solution. ++ // throw new AccessDeniedHttpException("The scheme for this image doesn't match the scheme for the original image"); + } + + if ($token_is_valid) { From 458603ebd11ca11d2cc9b8a8df70bd0484b14a54 Mon Sep 17 00:00:00 2001 From: tuutti Date: Fri, 16 Aug 2024 11:19:20 +0300 Subject: [PATCH 03/11] UHF-10462: Automatic PHPCS fixes --- helfi_azure_fs.module | 2 +- src/AzureBlobStorageAdapter.php | 2 +- src/AzureFileSystem.php | 2 +- src/Flysystem/Azure.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helfi_azure_fs.module b/helfi_azure_fs.module index ce77556..69d9423 100644 --- a/helfi_azure_fs.module +++ b/helfi_azure_fs.module @@ -16,7 +16,7 @@ use Drupal\file\FileInterface; */ function helfi_azure_fs_entity_field_storage_info_alter( &$fields, - EntityTypeInterface $entity_type + EntityTypeInterface $entity_type, ) : void { $config = Drupal::config('helfi_azure_fs.settings'); diff --git a/src/AzureBlobStorageAdapter.php b/src/AzureBlobStorageAdapter.php index d8f566e..abb0bb4 100644 --- a/src/AzureBlobStorageAdapter.php +++ b/src/AzureBlobStorageAdapter.php @@ -65,7 +65,7 @@ class AzureBlobStorageAdapter extends AbstractAdapter { public function __construct( protected BlobRestProxy $client, protected string $container, - ?string $prefix = NULL + ?string $prefix = NULL, ) { $this->setPathPrefix($prefix); } diff --git a/src/AzureFileSystem.php b/src/AzureFileSystem.php index fa8471e..325abab 100644 --- a/src/AzureFileSystem.php +++ b/src/AzureFileSystem.php @@ -69,7 +69,7 @@ public function mkdir( $uri, $mode = NULL, $recursive = FALSE, - $context = NULL + $context = NULL, ): bool { if (!$this->skipFsOperations) { return $this->decorated->mkdir($uri, $mode, $recursive, $context); diff --git a/src/Flysystem/Azure.php b/src/Flysystem/Azure.php index 24284e2..4cb6695 100644 --- a/src/Flysystem/Azure.php +++ b/src/Flysystem/Azure.php @@ -59,7 +59,7 @@ final class Azure implements FlysystemPluginInterface, ContainerFactoryPluginInt public function __construct( private array $configuration, private LoggerInterface $logger, - private FileUrlGeneratorInterface $fileUrlGenerator + private FileUrlGeneratorInterface $fileUrlGenerator, ) { } From 5ced2ce80fe4020159f2757ea5c8fc4555a57d20 Mon Sep 17 00:00:00 2001 From: tuutti Date: Fri, 16 Aug 2024 11:22:43 +0300 Subject: [PATCH 04/11] UHF-10462: phpstan fixes --- helfi_azure_fs.module | 3 +-- helfi_azure_fs.services.yml | 1 + src/AzureFileSystem.php | 5 +---- tests/src/Unit/AzureFileSystemTest.php | 4 +--- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/helfi_azure_fs.module b/helfi_azure_fs.module index 69d9423..b632016 100644 --- a/helfi_azure_fs.module +++ b/helfi_azure_fs.module @@ -8,7 +8,6 @@ declare(strict_types=1); use Drupal\Core\Entity\EntityTypeInterface; -use Drupal\Core\File\FileSystemInterface; use Drupal\file\FileInterface; /** @@ -46,7 +45,7 @@ function helfi_azure_fs_file_presave(FileInterface $file) : void { $uri = $file->getFileUri(); $directory = $file_system->dirname($uri); $uri = $directory . '/' . $new_filename; - if ($new_uri = $file_system->move($file->getFileUri(), $uri, FileSystemInterface::EXISTS_RENAME)) { + if ($new_uri = $file_system->move($file->getFileUri(), $uri)) { $file->set('uri', $new_uri); $file->set('filename', $file_system->basename($new_uri)); } diff --git a/helfi_azure_fs.services.yml b/helfi_azure_fs.services.yml index c354d74..f3edf33 100644 --- a/helfi_azure_fs.services.yml +++ b/helfi_azure_fs.services.yml @@ -8,3 +8,4 @@ services: - '@stream_wrapper_manager' - '@settings' - '@logger.channel.file' + diff --git a/src/AzureFileSystem.php b/src/AzureFileSystem.php index 325abab..34cc504 100644 --- a/src/AzureFileSystem.php +++ b/src/AzureFileSystem.php @@ -38,18 +38,15 @@ final class AzureFileSystem extends FileSystem { * The stream wrapper manager. * @param \Drupal\Core\Site\Settings $settings * The settings. - * @param \Psr\Log\LoggerInterface $logger - * The logger. */ public function __construct( private FileSystemInterface $decorated, StreamWrapperManagerInterface $streamWrapperManager, Settings $settings, - LoggerInterface $logger, ) { $this->skipFsOperations = $settings::get('is_azure', FALSE); - parent::__construct($streamWrapperManager, $settings, $logger); + parent::__construct($streamWrapperManager, $settings); } /** diff --git a/tests/src/Unit/AzureFileSystemTest.php b/tests/src/Unit/AzureFileSystemTest.php index 51c9b8c..d59769f 100644 --- a/tests/src/Unit/AzureFileSystemTest.php +++ b/tests/src/Unit/AzureFileSystemTest.php @@ -95,9 +95,7 @@ private function getSut(FileSystemInterface $decorated, Settings $settings, ?Str if (!$streamWrapperManager) { $streamWrapperManager = $this->createMock(StreamWrapperManagerInterface::class); } - $logger = $this->createMock(LoggerInterface::class); - - return new AzureFileSystem($decorated, $streamWrapperManager, $settings, $logger); + return new AzureFileSystem($decorated, $streamWrapperManager, $settings); } /** From 2fe9043e3795fc38fd63b54ddca951459a492f42 Mon Sep 17 00:00:00 2001 From: tuutti Date: Fri, 16 Aug 2024 11:23:41 +0300 Subject: [PATCH 05/11] UHF-10462: Require 10.3 core --- composer.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/composer.json b/composer.json index a648d56..ef16870 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,9 @@ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "drupal/coder": "^8.3" }, + "conflict": { + "drupal/core": "<10.3" + }, "extra": { "patches": { "drual/core": { From dd82084332e46abb51eb70b61d8aa7acfa4d2df1 Mon Sep 17 00:00:00 2001 From: tuutti Date: Fri, 16 Aug 2024 11:31:03 +0300 Subject: [PATCH 06/11] UHF-10462: phpcs fixes --- src/AzureFileSystem.php | 1 - tests/src/Unit/AzureFileSystemTest.php | 1 - 2 files changed, 2 deletions(-) diff --git a/src/AzureFileSystem.php b/src/AzureFileSystem.php index 34cc504..668f800 100644 --- a/src/AzureFileSystem.php +++ b/src/AzureFileSystem.php @@ -8,7 +8,6 @@ use Drupal\Core\File\FileSystemInterface; use Drupal\Core\Site\Settings; use Drupal\Core\StreamWrapper\StreamWrapperManagerInterface; -use Psr\Log\LoggerInterface; /** * Provides Azure specific file system. diff --git a/tests/src/Unit/AzureFileSystemTest.php b/tests/src/Unit/AzureFileSystemTest.php index d59769f..1938e84 100644 --- a/tests/src/Unit/AzureFileSystemTest.php +++ b/tests/src/Unit/AzureFileSystemTest.php @@ -14,7 +14,6 @@ use org\bovigo\vfs\vfsStream; use Prophecy\Argument; use Prophecy\PhpUnit\ProphecyTrait; -use Psr\Log\LoggerInterface; /** * Tests AzureFileSystem. From 46fcfe9cfe833e38ae3d820884d430dff6f6bae4 Mon Sep 17 00:00:00 2001 From: tuutti Date: Fri, 16 Aug 2024 11:36:49 +0300 Subject: [PATCH 07/11] UHF-10462: Fixed tests --- tests/src/Unit/AzureTest.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/src/Unit/AzureTest.php b/tests/src/Unit/AzureTest.php index d9b4e1f..23ccc57 100644 --- a/tests/src/Unit/AzureTest.php +++ b/tests/src/Unit/AzureTest.php @@ -7,6 +7,7 @@ use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\File\FileUrlGeneratorInterface; use Drupal\Core\Logger\LoggerChannelFactory; +use Drupal\Core\Session\AccountInterface; use Drupal\helfi_azure_fs\Flysystem\Azure; use Drupal\Tests\UnitTestCase; use MicrosoftAzure\Storage\Common\Internal\Authentication\SharedAccessSignatureAuthScheme; @@ -15,6 +16,7 @@ use Prophecy\Argument; use Prophecy\PhpUnit\ProphecyTrait; use Psr\Log\LoggerInterface; +use Symfony\Component\HttpFoundation\RequestStack; /** * Tests Azure. @@ -37,7 +39,10 @@ public function testGetExternalUrl() : void { '/styles/test.jpg', '/styles/test).jpg', ); - $loggerFactory = new LoggerChannelFactory(); + $loggerFactory = new LoggerChannelFactory( + $this->prophesize(RequestStack::class)->reveal(), + $this->prophesize(AccountInterface::class)->reveal(), + ); $loggerFactory->addLogger($this->prophesize(LoggerInterface::class)->reveal()); $configuration = [ From 1d2ca4ebbc7e93ba475b51d8791523c345f2bcfb Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Wed, 28 Aug 2024 09:26:52 +0300 Subject: [PATCH 08/11] Add back changes to .info.yml and .services.yml --- helfi_azure_fs.info.yml | 2 +- helfi_azure_fs.services.yml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/helfi_azure_fs.info.yml b/helfi_azure_fs.info.yml index 5439a21..3bd8574 100644 --- a/helfi_azure_fs.info.yml +++ b/helfi_azure_fs.info.yml @@ -1,4 +1,4 @@ name: HELfi azure file system type: module package: Custom -core_version_requirement: ^9 || ^10 +core_version_requirement: ^10 || ^11 diff --git a/helfi_azure_fs.services.yml b/helfi_azure_fs.services.yml index f3edf33..955c281 100644 --- a/helfi_azure_fs.services.yml +++ b/helfi_azure_fs.services.yml @@ -1,4 +1,8 @@ services: + _defaults: + autoconfigure: true + autowire: true + azure_file_system: class: Drupal\helfi_azure_fs\AzureFileSystem decorates: file_system @@ -7,5 +11,4 @@ services: - '@azure_file_system.inner' - '@stream_wrapper_manager' - '@settings' - - '@logger.channel.file' From f933226cdd9b046d76757d4f885d3d3567365264 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Wed, 28 Aug 2024 09:35:50 +0300 Subject: [PATCH 09/11] revert-27-UHF-10462: Add logging --- patches/UHF-10533-d10-images.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patches/UHF-10533-d10-images.patch b/patches/UHF-10533-d10-images.patch index 723d0b0..dd38b86 100644 --- a/patches/UHF-10533-d10-images.patch +++ b/patches/UHF-10533-d10-images.patch @@ -1,5 +1,5 @@ diff --git a/core/modules/image/src/Controller/ImageStyleDownloadController.php b/core/modules/image/src/Controller/ImageStyleDownloadController.php -index bfc5c985d8..0461176ea9 100644 +index bfc5c985d8..18d513b97e 100644 --- a/core/modules/image/src/Controller/ImageStyleDownloadController.php +++ b/core/modules/image/src/Controller/ImageStyleDownloadController.php @@ -158,7 +158,9 @@ public function deliver(Request $request, $scheme, ImageStyleInterface $image_st @@ -9,7 +9,7 @@ index bfc5c985d8..0461176ea9 100644 - throw new AccessDeniedHttpException("The scheme for this image doesn't match the scheme for the original image"); + // Remove 10.3 security check. Hel.fi should only serve public files, so + // this should be fine for use while we are working on a more permanent solution. -+ // throw new AccessDeniedHttpException("The scheme for this image doesn't match the scheme for the original image"); ++ $this->logger->info('Got %derivative_uri, expected scheme %required_scheme.', ['%derivative_uri' => $derivative_uri, '%required_scheme' => $required_derivative_scheme]); } if ($token_is_valid) { From 1e41c860f31d29252de4e57a0576bea1b5d10f32 Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Wed, 28 Aug 2024 09:39:54 +0300 Subject: [PATCH 10/11] revert-27-UHF-10462: Use patch from github --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index ef16870..851f47c 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ "extra": { "patches": { "drual/core": { - "UHF-10533 D10.3 images": "./patches/UHF-10533-d10-images.patch" + "UHF-10533 D10.3 images": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-module-helfi-azure-fs/f933226cdd9b046d76757d4f885d3d3567365264/patches/UHF-10533-d10-images.patch" }, "twistor/flysystem-stream-wrapper": { "PHP 8.2 support (https://www.drupal.org/project/flysystem/issues/3387094)": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-module-helfi-azure-fs/ddb222622b92d1c2b7db975a84167a00579a1ad0/patches/3387094-add-context-property-to-stream-wrapper.patch" From 698be53ad3e7008a3fcfbb934407922a91ebb76a Mon Sep 17 00:00:00 2001 From: Santeri Hurnanen Date: Wed, 28 Aug 2024 09:46:10 +0300 Subject: [PATCH 11/11] revert-27-UHF-10462: Fix typo --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 851f47c..7e60994 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ }, "extra": { "patches": { - "drual/core": { + "drupal/core": { "UHF-10533 D10.3 images": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-module-helfi-azure-fs/f933226cdd9b046d76757d4f885d3d3567365264/patches/UHF-10533-d10-images.patch" }, "twistor/flysystem-stream-wrapper": {