interface FileAccessFormatterControlHandlerInterface

Same name and namespace in other branches
  1. 8.9.x core/modules/file/src/FileAccessFormatterControlHandlerInterface.php \Drupal\file\FileAccessFormatterControlHandlerInterface
  2. 10 core/modules/file/src/FileAccessFormatterControlHandlerInterface.php \Drupal\file\FileAccessFormatterControlHandlerInterface
  3. 11.x core/modules/file/src/FileAccessFormatterControlHandlerInterface.php \Drupal\file\FileAccessFormatterControlHandlerInterface

Defines an interface for file access handlers that need to run on file formatters.

\Drupal\Core\Field\Plugin\Field\FieldFormatter\EntityReferenceFormatterBase, which file and image formatters extend, checks 'view' access on the referenced files before displaying them. That check would be useless and costly with Core's default access control implementation for files (\Drupal\file\FileAccessControlHandler grants access based on whether there are existing entities with granted access that reference the file). But it might be needed if a different access control handler with different logic is swapped in.

\Drupal\file\Plugin\Field\FieldFormatter\FileFormatterBase thus adjusts that behavior, and only checks access if the access control handler in use for files opts in by implementing this interface.

Hierarchy

Expanded class hierarchy of FileAccessFormatterControlHandlerInterface

All classes that implement FileAccessFormatterControlHandlerInterface

See also

\Drupal\file\Plugin\Field\FieldFormatter\FileFormatterBase::needsAccessCheck()

1 file declares its use of FileAccessFormatterControlHandlerInterface
FileTestAccessControlHandler.php in core/modules/file/tests/file_test/src/FileTestAccessControlHandler.php

File

core/modules/file/src/FileAccessFormatterControlHandlerInterface.php, line 25

Namespace

Drupal\file
View source
interface FileAccessFormatterControlHandlerInterface extends EntityAccessControlHandlerInterface {

}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.