Issue #2971779 by timmillwood, amateescu, alexpott, Sam152: Disallow moderation of internal entity types
parent
00ed1ed469
commit
1e7cb6ac40
|
@ -130,7 +130,7 @@ class EntityTypeInfo implements ContainerInjectionInterface {
|
|||
public function entityTypeAlter(array &$entity_types) {
|
||||
foreach ($entity_types as $entity_type_id => $entity_type) {
|
||||
// The ContentModerationState entity type should never be moderated.
|
||||
if ($entity_type->isRevisionable() && $entity_type_id != 'content_moderation_state') {
|
||||
if ($entity_type->isRevisionable() && !$entity_type->isInternal()) {
|
||||
$entity_types[$entity_type_id] = $this->addModerationToEntityType($entity_type);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,4 +61,34 @@ class EntityTypeInfoTest extends KernelTestBase {
|
|||
$this->assertTrue($base_fields['moderation_state']->isTranslatable());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the correct entity types have moderation added.
|
||||
*
|
||||
* @covers ::entityTypeAlter
|
||||
*
|
||||
* @dataProvider providerTestEntityTypeAlter
|
||||
*/
|
||||
public function testEntityTypeAlter($entity_type_id, $moderatable) {
|
||||
$entity_types = $this->entityTypeManager->getDefinitions();
|
||||
$this->assertSame($moderatable, $entity_types[$entity_type_id]->hasHandlerClass('moderation'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides test data for testEntityTypeAlter().
|
||||
*
|
||||
* @return array
|
||||
* An array of test cases, where each test case is an array with the
|
||||
* following values:
|
||||
* - An entity type ID.
|
||||
* - Whether the entity type is moderatable or not.
|
||||
*/
|
||||
public function providerTestEntityTypeAlter() {
|
||||
$tests = [];
|
||||
$tests['non_internal_non_revisionable'] = ['entity_test', FALSE];
|
||||
$tests['non_internal_revisionable'] = ['entity_test_rev', TRUE];
|
||||
$tests['internal_non_revisionable'] = ['entity_test_no_label', FALSE];
|
||||
$tests['internal_revisionable'] = ['content_moderation_state', FALSE];
|
||||
return $tests;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue