diff --git a/core/modules/file/tests/src/Kernel/Upload/FileFieldUploadAccessCheckerTest.php b/core/modules/file/tests/src/Kernel/Upload/FileFieldUploadAccessCheckerTest.php index 6910dd905c..782d1bec99 100644 --- a/core/modules/file/tests/src/Kernel/Upload/FileFieldUploadAccessCheckerTest.php +++ b/core/modules/file/tests/src/Kernel/Upload/FileFieldUploadAccessCheckerTest.php @@ -13,6 +13,7 @@ /** * Tests for file upload access control. * + * @coversDefaultClass \Drupal\file\Upload\FileFieldUploadAccessChecker * @group file */ class FileFieldUploadAccessCheckerTest extends KernelTestBase { diff --git a/core/modules/jsonapi/jsonapi.services.yml b/core/modules/jsonapi/jsonapi.services.yml index 7df1f3e5e4..421b747cd5 100644 --- a/core/modules/jsonapi/jsonapi.services.yml +++ b/core/modules/jsonapi/jsonapi.services.yml @@ -243,3 +243,4 @@ services: class: Drupal\jsonapi\Controller\TemporaryJsonapiFileFieldUploader public: false arguments: ['@logger.channel.file', '@file_system', '@file.mime_type.guesser', '@token', '@lock', '@config.factory'] + deprecated: The "%service_id%" service is deprecated. You should use the 'file.field_upload_handler' service instead. See https://www.drupal.org/node/3035648 diff --git a/core/modules/jsonapi/src/Controller/FileUpload.php b/core/modules/jsonapi/src/Controller/FileUpload.php index 3974daa0e2..a75aae70b2 100644 --- a/core/modules/jsonapi/src/Controller/FileUpload.php +++ b/core/modules/jsonapi/src/Controller/FileUpload.php @@ -125,12 +125,10 @@ class FileUpload { * The current user. * @param \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager * The entity field manager. - * @param \Drupal\jsonapi\Controller\TemporaryJsonapiFileFieldUploader $file_uploader - * The file uploader. + * @param \Drupal\file\Upload\FileFieldUploadHandler|\Drupal\jsonapi\Controller\TemporaryJsonapiFileFieldUploader $upload_handler + * The file field upload handler. * @param \Symfony\Component\HttpKernel\HttpKernelInterface $http_kernel * An HTTP kernel for making subrequests. - * @param \Drupal\file\Upload\FileFieldUploadHandler $upload_handler - * The file field upload handler. * @param \Drupal\file\FileFieldDefinitionResolver $field_resolver * The file field definition resolver. * @param \Drupal\file\Upload\FileFieldUploadAccessChecker $access_checker @@ -142,11 +140,15 @@ class FileUpload { * @param \Psr\Log\LoggerInterface $logger * The logger. */ - public function __construct(AccountInterface $current_user, EntityFieldManagerInterface $field_manager, TemporaryJsonapiFileFieldUploader $file_uploader, HttpKernelInterface $http_kernel, FileFieldUploadHandler $upload_handler, FileFieldDefinitionResolver $field_resolver, FileFieldUploadAccessChecker $access_checker, FilenameExtractor $filename_extractor, RawFileUploader $file_stream_uploader, LoggerInterface $logger) { + public function __construct(AccountInterface $current_user, EntityFieldManagerInterface $field_manager, FileFieldUploadHandler|TemporaryJsonapiFileFieldUploader $upload_handler, HttpKernelInterface $http_kernel, FileFieldDefinitionResolver $field_resolver, FileFieldUploadAccessChecker $access_checker, FilenameExtractor $filename_extractor, RawFileUploader $file_stream_uploader, LoggerInterface $logger) { $this->currentUser = $current_user; $this->fieldManager = $field_manager; - $this->fileUploader = $file_uploader; $this->httpKernel = $http_kernel; + if ($upload_handler instanceof TemporaryJsonapiFileFieldUploader) { + @trigger_error('Calling ' . __METHOD__ . '() with the $upload_handler argument as TemporaryJsonapiFileFieldUploader is deprecated in drupal:10.1.0 and is replaced with from drupal:11.0.0. See https://www.drupal.org/node/3078162', E_USER_DEPRECATED); + $this->fileUploader = $upload_handler; + $upload_handler = \Drupal::service('file.field_upload_handler'); + } $this->fileFieldUploadHandler = $upload_handler; $this->fieldResolver = $field_resolver; $this->uploadAccessChecker = $access_checker; diff --git a/core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php b/core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php index 0551812fa8..f83c940e38 100644 --- a/core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php +++ b/core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php @@ -126,6 +126,7 @@ class TemporaryJsonapiFileFieldUploader { * (optional) The event dispatcher. */ public function __construct(LoggerInterface $logger, FileSystemInterface $file_system, $mime_type_guesser, Token $token, LockBackendInterface $lock, ConfigFactoryInterface $config_factory, EventDispatcherInterface $event_dispatcher = NULL) { + @trigger_error('The ' . __NAMESPACE__ . '\TemporaryJsonapiFileFieldUploader is deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. Instead, use \Drupal\file\Upload\FileFieldUploadHandler. See https://www.drupal.org/node/3035648', E_USER_DEPRECATED); $this->logger = $logger; $this->fileSystem = $file_system; $this->mimeTypeGuesser = $mime_type_guesser; diff --git a/core/modules/jsonapi/src/JsonapiServiceProvider.php b/core/modules/jsonapi/src/JsonapiServiceProvider.php index 8cced88db2..f919a391b8 100644 --- a/core/modules/jsonapi/src/JsonapiServiceProvider.php +++ b/core/modules/jsonapi/src/JsonapiServiceProvider.php @@ -46,9 +46,8 @@ public function register(ContainerBuilder $container) { $container->register('jsonapi.file_upload', FileUpload::class) ->addArgument(new Reference('current_user')) ->addArgument(new Reference('entity_field.manager')) - ->addArgument(new Reference('jsonapi.file.uploader.field')) - ->addArgument(new Reference('http_kernel')) ->addArgument(new Reference('file.field_upload_handler')) + ->addArgument(new Reference('http_kernel')) ->addArgument(new Reference('file.field_definition_resolver')) ->addArgument(new Reference('file.upload_access_checker')) ->addArgument(new Reference('file.upload_filename_extractor')) diff --git a/core/modules/jsonapi/tests/src/Kernel/Controller/TemporaryJsonapiFileFieldUploaderTest.php b/core/modules/jsonapi/tests/src/Kernel/Controller/TemporaryJsonapiFileFieldUploaderTest.php index 38ed155285..2e920bacd7 100644 --- a/core/modules/jsonapi/tests/src/Kernel/Controller/TemporaryJsonapiFileFieldUploaderTest.php +++ b/core/modules/jsonapi/tests/src/Kernel/Controller/TemporaryJsonapiFileFieldUploaderTest.php @@ -13,6 +13,7 @@ /** * @coversDefaultClass \Drupal\jsonapi\Controller\TemporaryJsonapiFileFieldUploader * @group jsonapi + * @group legacy */ class TemporaryJsonapiFileFieldUploaderTest extends JsonapiKernelTestBase {