class Entity in Zircon Profile 8
Same name in this branch
- 8 vendor/symfony/validator/Tests/Fixtures/Entity.php \Symfony\Component\Validator\Tests\Fixtures\Entity
- 8 core/lib/Drupal/Core/Entity/Entity.php \Drupal\Core\Entity\Entity
- 8 core/modules/views/src/Plugin/views/area/Entity.php \Drupal\views\Plugin\views\area\Entity
- 8 core/modules/views/src/Plugin/views/argument_validator/Entity.php \Drupal\views\Plugin\views\argument_validator\Entity
- 8 core/modules/migrate/src/Plugin/migrate/destination/Entity.php \Drupal\migrate\Plugin\migrate\destination\Entity
- 8 vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/_files/annotation/TestClass.php \Doctrine\Entity
Same name and namespace in other branches
- 8.0 core/modules/views/src/Plugin/views/argument_validator/Entity.php \Drupal\views\Plugin\views\argument_validator\Entity
Defines a argument validator plugin for each entity type.
Plugin annotation
@ViewsArgumentValidator(
id = "entity",
deriver = "Drupal\views\Plugin\Derivative\ViewsEntityArgumentValidator"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, ViewsPluginInterface
- class \Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase
- class \Drupal\views\Plugin\views\argument_validator\Entity
- class \Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase
- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, ViewsPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, StringTranslationTrait
Expanded class hierarchy of Entity
See also
\Drupal\views\Plugin\Derivative\ViewsEntityArgumentValidator
4 files declare their use of Entity
- EntityTest.php in core/
modules/ views/ tests/ src/ Unit/ Plugin/ argument_validator/ EntityTest.php - Contains \Drupal\Tests\views\Unit\Plugin\argument_validator\EntityTest.
- Term.php in core/
modules/ taxonomy/ src/ Plugin/ views/ argument_validator/ Term.php - Contains \Drupal\taxonomy\Plugin\views\argument_validator\Term.
- TermName.php in core/
modules/ taxonomy/ src/ Plugin/ views/ argument_validator/ TermName.php - Contains \Drupal\taxonomy\Plugin\views\argument_validator\TermName.
- User.php in core/
modules/ user/ src/ Plugin/ views/ argument_validator/ User.php - Contains \Drupal\user\Plugin\views\argument_validator\User.
23 string references to 'Entity'
- Abstract2Dot5ApiTest::testGroupSequenceIncludesReferences in vendor/
symfony/ validator/ Tests/ Validator/ Abstract2Dot5ApiTest.php - AbstractValidatorTest::testPropagateDefaultGroupToReferenceWhenReplacingDefaultGroup in vendor/
symfony/ validator/ Tests/ Validator/ AbstractValidatorTest.php - AbstractValidatorTest::testReplaceDefaultGroupByGroupSequenceArray in vendor/
symfony/ validator/ Tests/ Validator/ AbstractValidatorTest.php - AbstractValidatorTest::testReplaceDefaultGroupByGroupSequenceObject in vendor/
symfony/ validator/ Tests/ Validator/ AbstractValidatorTest.php - AbstractValidatorTest::testReplaceDefaultGroupWithArrayFromGroupSequenceProvider in vendor/
symfony/ validator/ Tests/ Validator/ AbstractValidatorTest.php
File
- core/
modules/ views/ src/ Plugin/ views/ argument_validator/ Entity.php, line 26 - Contains \Drupal\views\Plugin\views\argument_validator\Entity.
Namespace
Drupal\views\Plugin\views\argument_validatorView source
class Entity extends ArgumentValidatorPluginBase {
/**
* The entity manager.
*
* @var \Drupal\Core\Entity\EntityManagerInterface
*/
protected $entityManager;
/**
* If this validator can handle multiple arguments.
*
* @var bool
*/
protected $multipleCapable = TRUE;
/**
* Constructs an \Drupal\views\Plugin\views\argument_validator\Entity object.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin_id for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
* The entity manager.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityManagerInterface $entity_manager) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->entityManager = $entity_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('entity.manager'));
}
/**
* {@inheritdoc}
*/
protected function defineOptions() {
$options = parent::defineOptions();
$options['bundles'] = array(
'default' => array(),
);
$options['access'] = array(
'default' => FALSE,
);
$options['operation'] = array(
'default' => 'view',
);
$options['multiple'] = array(
'default' => FALSE,
);
return $options;
}
/**
* {@inheritdoc}
*/
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
parent::buildOptionsForm($form, $form_state);
$entity_type_id = $this->definition['entity_type'];
// Derivative IDs are all entity:entity_type. Sanitized for js.
// The ID is converted back on submission.
$sanitized_id = ArgumentPluginBase::encodeValidatorId($this->definition['id']);
$entity_type = $this->entityManager
->getDefinition($entity_type_id);
// If the entity has bundles, allow option to restrict to bundle(s).
if ($entity_type
->hasKey('bundle')) {
$bundle_options = array();
foreach ($this->entityManager
->getBundleInfo($entity_type_id) as $bundle_id => $bundle_info) {
$bundle_options[$bundle_id] = $bundle_info['label'];
}
$form['bundles'] = array(
'#title' => $entity_type
->getBundleLabel() ?: $this
->t('Bundles'),
'#default_value' => $this->options['bundles'],
'#type' => 'checkboxes',
'#options' => $bundle_options,
'#description' => $this
->t('If none are selected, all are allowed.'),
);
}
// Offer the option to filter by access to the entity in the argument.
$form['access'] = array(
'#type' => 'checkbox',
'#title' => $this
->t('Validate user has access to the %name', array(
'%name' => $entity_type
->getLabel(),
)),
'#default_value' => $this->options['access'],
);
$form['operation'] = array(
'#type' => 'radios',
'#title' => $this
->t('Access operation to check'),
'#options' => array(
'view' => $this
->t('View'),
'update' => $this
->t('Edit'),
'delete' => $this
->t('Delete'),
),
'#default_value' => $this->options['operation'],
'#states' => array(
'visible' => array(
':input[name="options[validate][options][' . $sanitized_id . '][access]"]' => array(
'checked' => TRUE,
),
),
),
);
// If class is multiple capable give the option to validate single/multiple.
if ($this->multipleCapable) {
$form['multiple'] = array(
'#type' => 'radios',
'#title' => $this
->t('Multiple arguments'),
'#options' => array(
0 => $this
->t('Single ID', array(
'%type' => $entity_type
->getLabel(),
)),
1 => $this
->t('One or more IDs separated by , or +', array(
'%type' => $entity_type
->getLabel(),
)),
),
'#default_value' => (string) $this->options['multiple'],
);
}
}
/**
* {@inheritdoc}
*/
public function submitOptionsForm(&$form, FormStateInterface $form_state, &$options = array()) {
// Filter out unused options so we don't store giant unnecessary arrays.
$options['bundles'] = array_filter($options['bundles']);
}
/**
* {@inheritdoc}
*/
public function validateArgument($argument) {
$entity_type = $this->definition['entity_type'];
if ($this->multipleCapable && $this->options['multiple']) {
// At this point only interested in individual IDs no matter what type,
// just splitting by the allowed delimiters.
$ids = array_filter(preg_split('/[,+ ]/', $argument));
}
elseif ($argument) {
$ids = array(
$argument,
);
}
else {
return FALSE;
}
$entities = $this->entityManager
->getStorage($entity_type)
->loadMultiple($ids);
// Validate each id => entity. If any fails break out and return false.
foreach ($ids as $id) {
// There is no entity for this ID.
if (!isset($entities[$id])) {
return FALSE;
}
if (!$this
->validateEntity($entities[$id])) {
return FALSE;
}
}
return TRUE;
}
/**
* Validates an individual entity against class access settings.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
*
* @return bool
* True if validated.
*/
protected function validateEntity(EntityInterface $entity) {
// If access restricted by entity operation.
if ($this->options['access'] && !$entity
->access($this->options['operation'])) {
return FALSE;
}
// If restricted by bundle.
$bundles = $this->options['bundles'];
if (count($bundles) && empty($bundles[$entity
->bundle()])) {
return FALSE;
}
return TRUE;
}
/**
* {@inheritdoc}
*/
public function calculateDependencies() {
$dependencies = parent::calculateDependencies();
$entity_type_id = $this->definition['entity_type'];
$bundle_entity_type = $this->entityManager
->getDefinition($entity_type_id)
->getBundleEntityType();
// The bundle entity type might not exist. For example, users do not have
// bundles.
if ($this->entityManager
->hasHandler($bundle_entity_type, 'storage')) {
$bundle_entity_storage = $this->entityManager
->getStorage($bundle_entity_type);
foreach ($bundle_entity_storage
->loadMultiple(array_keys($this->options['bundles'])) as $bundle_entity) {
$dependencies[$bundle_entity
->getConfigDependencyKey()][] = $bundle_entity
->getConfigDependencyName();
}
}
return $dependencies;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ArgumentValidatorPluginBase:: |
protected | property | The argument handler instance associated with this plugin. | |
ArgumentValidatorPluginBase:: |
public | function | Determine if the administrator has the privileges to use this plugin | |
ArgumentValidatorPluginBase:: |
protected | function | If we don't have access to the form but are showing it anyway, ensure that the form is safe and cannot be changed from user input. | |
ArgumentValidatorPluginBase:: |
public | function | Process the summary arguments for displaying. | 1 |
ArgumentValidatorPluginBase:: |
public | function | Sets the parent argument this plugin is associated with. | |
ArgumentValidatorPluginBase:: |
public | function |
Provide the default form form for validating options Overrides PluginBase:: |
|
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
Entity:: |
protected | property | The entity manager. | |
Entity:: |
protected | property | If this validator can handle multiple arguments. | |
Entity:: |
public | function |
Provide the default form for setting options. Overrides ArgumentValidatorPluginBase:: |
2 |
Entity:: |
public | function |
Calculates dependencies for the configured plugin. Overrides PluginBase:: |
2 |
Entity:: |
public static | function |
Creates an instance of the plugin. Overrides PluginBase:: |
|
Entity:: |
protected | function |
Retrieve the options when this is a new access
control plugin Overrides ArgumentValidatorPluginBase:: |
2 |
Entity:: |
public | function |
Provide the default form form for submitting options Overrides ArgumentValidatorPluginBase:: |
1 |
Entity:: |
public | function |
Overrides ArgumentValidatorPluginBase:: |
2 |
Entity:: |
protected | function | Validates an individual entity against class access settings. | 1 |
Entity:: |
public | function |
Constructs an \Drupal\views\Plugin\views\argument_validator\Entity object. Overrides PluginBase:: |
|
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 2 |
PluginBase:: |
public | property | Plugins's definition | |
PluginBase:: |
public | property | The display object this plugin is for. | |
PluginBase:: |
public | property | Options for this plugin will be held here. | |
PluginBase:: |
protected | property | The plugin implementation definition. | |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
protected | property | Stores the render API renderer. | 2 |
PluginBase:: |
protected | property | Denotes whether the plugin has an additional options form. | 8 |
PluginBase:: |
public | property | The top object of a view. | 1 |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Clears a plugin. Overrides ViewsPluginInterface:: |
2 |
PluginBase:: |
protected | function | Do the work to filter out stored options depending on the defined options. | |
PluginBase:: |
public | function |
Filter out stored options depending on the defined options. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns an array of available token replacements. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function |
Returns the plugin provider. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
protected | function | Returns the render API renderer. | 1 |
PluginBase:: |
public | function |
Adds elements for available core tokens to a form. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns a string with any core tokens replaced. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
constant | Include entity row languages when listing languages. | ||
PluginBase:: |
constant | Include negotiated languages when listing languages. | ||
PluginBase:: |
public | function |
Initialize the plugin. Overrides ViewsPluginInterface:: |
8 |
PluginBase:: |
protected | function | Makes an array of languages, optionally including special languages. | |
PluginBase:: |
public | function |
Return the human readable name of the display. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public static | function |
Moves form elements into fieldsets for presentation purposes. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public static | function |
Flattens the structure of form elements. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Add anything to the query that we might need to. Overrides ViewsPluginInterface:: |
8 |
PluginBase:: |
public static | function | Returns substitutions for Views queries for languages. | |
PluginBase:: |
protected | function | Fills up the options of the plugin with defaults. | |
PluginBase:: |
public | function |
Returns the summary of the settings in the display. Overrides ViewsPluginInterface:: |
6 |
PluginBase:: |
public | function |
Provide a full list of possible theme templates used by this style. Overrides ViewsPluginInterface:: |
1 |
PluginBase:: |
public | function |
Unpack options over our existing defaults, drilling down into arrays
so that defaults don't get totally blown away. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns the usesOptions property. Overrides ViewsPluginInterface:: |
8 |
PluginBase:: |
public | function |
Validate that the plugin is correct and can be saved. Overrides ViewsPluginInterface:: |
5 |
PluginBase:: |
protected | function | Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin. | 1 |
PluginBase:: |
constant | Query string to indicate the site default language. | ||
StringTranslationTrait:: |
protected | property | The string translation service. | |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |