Unverified Commit c7a864dc authored by Alex Pott's avatar Alex Pott
Browse files

task: #3326900 ConfigManager::findConfigEntityDependenciesAsEntities() should...

task: #3326900 ConfigManager::findConfigEntityDependenciesAsEntities() should not load config overrides

By: prudloff
By: berdir
By: alexpott
parent 24542849
Loading
Loading
Loading
Loading
Loading
+1 −1
Changes for core/lib/Drupal/Core/Config/ConfigManager.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -303,7 +303,7 @@ public function findConfigEntityDependenciesAsEntities($type, array $names, ?Con
    $entities_to_return = array_fill_keys(array_keys($dependencies), NULL);
    foreach ($entities as $entity_type_id => $entities_to_load) {
      $storage = $this->entityTypeManager->getStorage($entity_type_id);
      $loaded_entities = $storage->loadMultiple($entities_to_load);
      $loaded_entities = $storage->loadMultipleOverrideFree($entities_to_load);
      foreach ($loaded_entities as $loaded_entity) {
        $entities_to_return[$loaded_entity->getConfigDependencyName()] = $loaded_entity;
      }
+2 −0
Changes for core/lib/Drupal/Core/Config/ConfigManagerInterface.php: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -120,6 +120,8 @@ public function findConfigEntityDependencies($type, array $names);
  /**
   * Finds config entities that are dependent on extensions or entities.
   *
   * Config entities are loaded without overrides.
   *
   * @param string $type
   *   The type of dependency being checked. Either 'module', 'theme', 'config'
   *   or 'content'.
+6 −0
Changes for core/tests/Drupal/KernelTests/Core/Config/ConfigDependencyTest.php: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -108,6 +108,12 @@ public function testDependencyManagement(): void {
    $this->assertContains('config_test:entity3', $dependent_ids, 'config_test.dynamic.entity3 has a dependency on config_test.dynamic.entity2.');
    $this->assertContains('config_test:entity4', $dependent_ids, 'config_test.dynamic.entity4 has a dependency on config_test.dynamic.entity2.');

    // Test that config entities are loaded without overrides.
    $GLOBALS['config']['config_test.dynamic.entity3'] = ['status' => FALSE];
    $this->container->get('config.factory')->clearStaticCache();
    $dependents = $config_manager->findConfigEntityDependenciesAsEntities('config', [$entity2->getConfigDependencyName()]);
    $this->assertTrue($dependents['config_test.dynamic.entity3']->get('status'));

    // Test getting node module's dependencies as configuration dependency
    // objects.
    $dependents = $config_manager->findConfigEntityDependencies('module', ['node']);