public function entityInsert(EntityInterface
$entity) { /** @var \Drupal\Core\Entity\RevisionableInterface|\Drupal\Core\Entity\EntityPublishedInterface $entity */
// Only run if the entity type can belong to a workspace and we are in a
// non-default workspace.
if (!
$this->workspaceManager->
shouldAlterOperations($entity->
getEntityType())) { return;
} $this->workspaceAssociation->
trackEntity($entity,
$this->workspaceManager->
getActiveWorkspace());
// When an entity is newly created in a workspace, it should be published in
// that workspace, but not yet published on the live workspace. It is first
// saved as unpublished for the default revision, then immediately a second
// revision is created which is published and attached to the workspace.
// This ensures that the published version of the entity does not 'leak'
// into the live site. This differs from edits to existing entities where
// there is already a valid default revision for the live workspace.
if (isset($entity->_initialPublished
)) { // Operate on a clone to avoid changing the entity prior to subsequent
// hook_entity_insert() implementations.