X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Ffile%2Fsrc%2FFileUsage%2FFileUsageBase.php;h=ba59cd54aa2931bd2df999c0921c7308020addd6;hp=c90359be8b09f91818bcfa400a85b3b8ef770b0b;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hpb=aea91e65e895364e460983b890e295aa5d5540a5 diff --git a/web/core/modules/file/src/FileUsage/FileUsageBase.php b/web/core/modules/file/src/FileUsage/FileUsageBase.php index c90359be8..ba59cd54a 100644 --- a/web/core/modules/file/src/FileUsage/FileUsageBase.php +++ b/web/core/modules/file/src/FileUsage/FileUsageBase.php @@ -2,6 +2,7 @@ namespace Drupal\file\FileUsage; +use Drupal\Core\Config\ConfigFactoryInterface; use Drupal\file\FileInterface; /** @@ -9,6 +10,27 @@ use Drupal\file\FileInterface; */ abstract class FileUsageBase implements FileUsageInterface { + /** + * The config factory. + * + * @var \Drupal\Core\Config\ConfigFactoryInterface + */ + protected $configFactory; + + /** + * Creates a FileUsageBase object. + * + * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory + * (optional) The config factory. Defaults to NULL and will use + * \Drupal::configFactory() instead. + * + * @deprecated The $config_factory parameter will become required in Drupal + * 9.0.0. + */ + public function __construct(ConfigFactoryInterface $config_factory = NULL) { + $this->configFactory = $config_factory ?: \Drupal::configFactory(); + } + /** * {@inheritdoc} */ @@ -24,6 +46,10 @@ abstract class FileUsageBase implements FileUsageInterface { * {@inheritdoc} */ public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1) { + // Do not actually mark files as temporary when the behavior is disabled. + if (!$this->configFactory->get('file.settings')->get('make_unused_managed_files_temporary')) { + return; + } // If there are no more remaining usages of this file, mark it as temporary, // which result in a delete through system_cron(). $usage = \Drupal::service('file.usage')->listUsage($file);