Commit 3e354572 authored by Rajab Natshah's avatar Rajab Natshah
Browse files

Issue #3270834: Switch to use the Module Installer Factory with custom...

Issue #3270834: Switch to use the Module Installer Factory with custom install: for the Varbase Core module
parent 55054ced
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@
 * Install, update and uninstall functions for the Varbase admin.
 */

use Symfony\Component\Yaml\Yaml;
use Drupal\Core\Config\InstallStorage;
use Drupal\user\Entity\User;
use Drupal\user\RoleInterface;
@@ -90,21 +89,12 @@ function varbase_admin_install() {
    ->applyUpdates();

  // Have forced configs import after the entity and definitions updates.
  $forced_configs_import_after_entity_updates = [
  $forced_configs = [
    'views.view.content',
    'views.view.user_admin_people',
  ];

  $module_path = Drupal::service('module_handler')->getModule('varbase_admin')->getPath();
  $optional_install_path = $module_path . '/' . InstallStorage::CONFIG_OPTIONAL_DIRECTORY;

  foreach ($forced_configs_import_after_entity_updates as $config_name) {
    $config_path = $optional_install_path . '/' . $config_name . '.yml';
    $config_content = file_get_contents($config_path);
    $config_data = (array) Yaml::parse($config_content);
    $config_factory = \Drupal::configFactory()->getEditable($config_name);
    $config_factory->setData($config_data)->save(TRUE);
  }
  ModuleInstallerFactory::importConfigsFromList('varbase_admin', $forced_configs, InstallStorage::CONFIG_OPTIONAL_DIRECTORY);
}

/**
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ name: "Varbase default content"
type: module
hidden: TRUE
package: Varbase
core_version_requirement: ^8 || ^9
core_version_requirement: ^9
description: "Provides starter default content for varbase."
dependencies:
  - drupal:block
+0 −9
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@
 */

use Vardot\Entity\EntityDefinitionUpdateManager;
use Vardot\Installer\ModuleInstallerFactory;
use Drupal\path_alias\Entity\PathAlias;

/**
@@ -14,14 +13,6 @@ use Drupal\path_alias\Entity\PathAlias;
 */
function varbase_default_content_install() {

  // Processer for install: in varbase_default_content.info.yml file using ModuleInstallerFactory.
  // ---------------------------------------------------------------------------.
  ModuleInstallerFactory::installList('varbase_default_content');

  // Install optional configs.
  ModuleInstallerFactory::importConfigsFromScanedDirectory('varbase_default_content', '/^field.storage.*\\.(yml)$/i');
  ModuleInstallerFactory::importConfigsFromScanedDirectory('varbase_default_content', '/^.*(settings.yml)$/i');

  // ---------------------------------------------------------------------------
  // Entity updates to clear up any mismatched entity and/or field definitions
  // And Fix changes were detected in the entity type and field definitions.
+2 −11
Original line number Diff line number Diff line
@@ -31,20 +31,11 @@ function varbase_security_install() {
    ->applyUpdates();

  // Have forced configs import after the entity and definitions updates.
  $forced_configs_import_after_entity_updates = [
  $forced_configs = [
    'core.entity_form_display.user.user.default',
  ];

  $module_path = Drupal::service('module_handler')->getModule('varbase_security')->getPath();
  $optional_install_path = $module_path . '/' . InstallStorage::CONFIG_OPTIONAL_DIRECTORY;

  foreach ($forced_configs_import_after_entity_updates as $config_name) {
    $config_path = $optional_install_path . '/' . $config_name . '.yml';
    $config_content = file_get_contents($config_path);
    $config_data = (array) Yaml::parse($config_content);
    $config_factory = \Drupal::configFactory()->getEditable($config_name);
    $config_factory->setData($config_data)->save(TRUE);
  }
  ModuleInstallerFactory::importConfigsFromList('varbase_security', $forced_configs, InstallStorage::CONFIG_OPTIONAL_DIRECTORY);

}

+7 −11
Original line number Diff line number Diff line
@@ -5,8 +5,8 @@
 * Contains varbase_security.module.
 */

use Symfony\Component\Yaml\Yaml;
use Vardot\Entity\EntityDefinitionUpdateManager;
use Vardot\Installer\ModuleInstallerFactory;

/**
 * Implements hook_form_FORM_ID_alter() for user_form().
@@ -87,9 +87,11 @@ function varbase_security_user_form_process_password_confirm(array $element) {
 */
function varbase_security_modules_installed($modules, $is_syncing) {
  if (in_array('security_review', $modules)) {
    $managed_config_module_name = 'security_review';
    $managed_config_path = Drupal::service('module_handler')->getModule('varbase_security')->getPath() . '/config/managed/' . $managed_config_module_name;

    // The module will be Enabled and Disabled many times
    // with development and deployments to production sites.
    // But the need to have the basic extra change for config over
    // the Security Review default configs.
    // -------------------------------------------------
    // Managed configs for the Security Review module.
    $managed_configs = [
      'security_review.settings',
@@ -109,13 +111,7 @@ function varbase_security_modules_installed($modules, $is_syncing) {
    ];

    // Import managed configs to the site active configs.
    foreach ($managed_configs as $config_name) {
      $config_path = $managed_config_path . '/' . $config_name . '.yml';
      $config_content = file_get_contents($config_path);
      $config_data = (array) Yaml::parse($config_content);
      $config_factory = \Drupal::configFactory()->getEditable($config_name);
      $config_factory->setData($config_data)->save(TRUE);
    }
    ModuleInstallerFactory::importConfigsFromList('varbase_security', $managed_configs, 'config/managed/security_review');

    // Entity updates to clear up any mismatched entity and/or field definitions
    // And Fix changes were detected in the entity type and field definitions.
Loading