diff core/lib/Drupal/Core/StreamWrapper/PrivateStream.php @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children 12f9dff5fda9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/lib/Drupal/Core/StreamWrapper/PrivateStream.php	Thu Jul 05 14:24:15 2018 +0000
@@ -0,0 +1,68 @@
+<?php
+
+namespace Drupal\Core\StreamWrapper;
+
+use Drupal\Core\Routing\UrlGeneratorTrait;
+use Drupal\Core\Site\Settings;
+
+/**
+ * Drupal private (private://) stream wrapper class.
+ *
+ * Provides support for storing privately accessible files with the Drupal file
+ * interface.
+ */
+class PrivateStream extends LocalStream {
+
+  use UrlGeneratorTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getType() {
+    return StreamWrapperInterface::LOCAL_NORMAL;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getName() {
+    return t('Private files');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDescription() {
+    return t('Private local files served by Drupal.');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDirectoryPath() {
+    return static::basePath();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getExternalUrl() {
+    $path = str_replace('\\', '/', $this->getTarget());
+    return $this->url('system.private_file_download', ['filepath' => $path], ['absolute' => TRUE, 'path_processing' => FALSE]);
+  }
+
+  /**
+   * Returns the base path for private://.
+   *
+   * Note that this static method is used by \Drupal\system\Form\FileSystemForm
+   * so you should alter that form or substitute a different form if you change
+   * the class providing the stream_wrapper.private service.
+   *
+   * @return string
+   *   The base path for private://.
+   */
+  public static function basePath() {
+    return Settings::get('file_private_path');
+  }
+
+}