You are here

function file_entity_get_public_and_private_stream_wrapper_names in File Entity (fieldable files) 8.2

Same name and namespace in other branches
  1. 7.3 file_entity.module \file_entity_get_public_and_private_stream_wrapper_names()
  2. 7.2 file_entity.module \file_entity_get_public_and_private_stream_wrapper_names()
2 calls to file_entity_get_public_and_private_stream_wrapper_names()
FileEntityAccessControlHandler::checkAccess in src/FileEntityAccessControlHandler.php
Performs access checks.
FileEntityPermissions::extendPermissionDetails in src/FileEntityPermissions.php
Adds descriptions about stream wrappers to permissions.

File

./file_entity.module, line 431
Extends Drupal file entities to be fieldable and viewable.

Code

function file_entity_get_public_and_private_stream_wrapper_names($flag = StreamWrapperInterface::VISIBLE) {
  $wrappers = array(
    'public' => [],
    'private' => [],
  );

  // @todo Make the set of private schemes/stream wrappers extendable.
  $private_schemes = [
    'private',
    'temporary',
  ];
  foreach (\Drupal::service('stream_wrapper_manager')
    ->getWrappers($flag) as $key => $wrapper) {

    // Some wrappers, e.g. those set in KernelTestBase, do not provide a name.
    $wrapper_name = isset($wrapper['name']) ? $wrapper['name'] : substr(strrchr($wrapper['class'], '\\'), 1);
    if (in_array($key, $private_schemes)) {
      $wrappers['private'][$key] = $wrapper_name;
    }
    else {
      $wrappers['public'][$key] = $wrapper_name;
    }
  }
  return $wrappers;
}