diff --git a/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php b/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php index 62015f2..7cd893e 100644 --- a/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php +++ b/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php @@ -52,13 +52,8 @@ public function access(Route $route, Request $request) { $definition = $this->entityManager->getDefinition($entity_type); + $values = $this->prepareEntityValues($definition, $request, $bundle); // Pass in the entity bundle if given and required. - $values = array(); - if ($bundle && isset($definition['entity_keys']['bundle'])) { - $values[$definition['entity_keys']['bundle']] = $bundle; - } - // Allow further manipulation of the entity values. - $values = $this->prepareEntityValues($values, $definition, $request); $entity = $this->entityManager->getStorageController($entity_type) ->create($values); @@ -66,19 +61,23 @@ public function access(Route $route, Request $request) { } /** - * Performs further manipulation of the entity values. + * Prepare the values passed into the storage controller. * - * @param array $values - * The values to be passed to \Drupal\Core\Entity\EntityInterface::create(). * @param array $definition * The entity type definition. * @param \Symfony\Component\HttpFoundation\Request $request * The request object. + * @param string $bundle + * (optional) The bundle to check access for. Defaults to an empty string. * * @return array * The modified values to be used to create the entity. */ - protected function prepareEntityValues(array $values, array $definition, Request $request) { + protected function prepareEntityValues(array $definition, Request $request, $bundle = '') { + $values = array(); + if ($bundle && isset($definition['entity_keys']['bundle'])) { + $values[$definition['entity_keys']['bundle']] = $bundle; + } return $values; }