Commit ebfaae27 authored by Robin Celie's avatar Robin Celie Committed by Vladimir Roudakov
Browse files

Issue #3167137 by Rob C, spuky, VladimirAus: Report incompatible modules on status report page

parent 4029d021
Loading
Loading
Loading
Loading
+35 −1
Original line number Diff line number Diff line
@@ -6,7 +6,41 @@
 */

use Drupal\user\UserInterface;
use Drupal\user_registrationpassword\UserRegistrationPassword;

/**
 * Implements hook_requirements().
 */
function user_registrationpassword_requirements($phase) {
  $requirements = [];
  // Inform the user about incompatible modules.
  if ($phase == 'runtime') {
    $moduleHandler = \Drupal::service('module_handler');
    // Define incompatible modules.
    $incompatible_modules = [
      'logintoboggan',
      'username_enumeration_prevention',
      'sharedemail_pass_reset',
    ];
    $modules_found = [];
    // Test for incompatible modules.
    foreach ($incompatible_modules as $module) {
      if ($moduleHandler->moduleExists($module)) {
        $modules_found[] = $module;
      }
    }
    // Report any issues.
    if (!empty($modules_found)) {
      $modules_found_string = implode(', ', $modules_found);
      $requirements['incompatible_modules'] = [
        'title' => t('Incompatible modules'),
        'value' => t('Your installation contains incompatible modules'),
        'severity' => REQUIREMENT_ERROR,
        'description' => t('The following modules are not compatible with user_registrationpassword: @modules', ['@modules' => $modules_found_string]),
      ];
    }
  }
  return $requirements;
}

/**
 * Implements hook_install().