Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / file / src / FileUsage / FileUsageBase.php
index c90359be8b09f91818bcfa400a85b3b8ef770b0b..ba59cd54aa2931bd2df999c0921c7308020addd6 100644 (file)
@@ -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);