function EntityOperations::entityPredelete

Same name in this branch
  1. 11.x core/modules/workspaces/src/EntityOperations.php \Drupal\workspaces\EntityOperations::entityPredelete()
Same name and namespace in other branches
  1. 9 core/modules/workspaces/src/EntityOperations.php \Drupal\workspaces\EntityOperations::entityPredelete()
  2. 8.9.x core/modules/workspaces/src/EntityOperations.php \Drupal\workspaces\EntityOperations::entityPredelete()
  3. 10 core/modules/workspaces/src/EntityOperations.php \Drupal\workspaces\EntityOperations::entityPredelete()

Implements hook_entity_predelete().

Attributes

#[Hook('entity_predelete')]

File

core/modules/workspaces/src/Hook/EntityOperations.php, line 230

Class

EntityOperations
Defines a class for reacting to entity runtime hooks.

Namespace

Drupal\workspaces\Hook

Code

public function entityPredelete(EntityInterface $entity) : void {
  if ($entity->getEntityTypeId() === 'workspace') {
    $this->workspaceRepository
      ->resetCache();
  }
  if ($this->shouldSkipOperations($entity)) {
    return;
  }
  // Prevent the entity from being deleted if the entity type does not have
  // support for workspaces, or if the entity has a published default
  // revision.
  $active_workspace = $this->workspaceManager
    ->getActiveWorkspace();
  if (!$this->workspaceInfo
    ->isEntitySupported($entity) || !$this->workspaceInfo
    ->isEntityDeletable($entity, $active_workspace)) {
    throw new \RuntimeException("This {$entity->getEntityType()->getSingularLabel()} can only be deleted in the Live workspace.");
  }
}

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