Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions scripts/provision-10-enable-dev-modules.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ task "Installing Testmode module."
drush pm:install testmode
pass "Installed Testmode module."

task "Installing Reroute Email module."
drush pm:install reroute_email
pass "Installed Reroute Email module."

task "Installing Generated content module."
if [ "${DRUPAL_GENERATED_CONTENT_SKIP}" = "1" ]; then
note "Content generation skipped. DRUPAL_GENERATED_CONTENT_SKIP is set to 1."
Expand Down
20 changes: 10 additions & 10 deletions tests/phpunit/Drupal/EnvironmentSettingsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ public function testEnvironmentNoOverrides(): void {
$this->assertConfig($config);

$settings['auto_create_htaccess'] = FALSE;
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['entity_update_batch_size'] = 50;
$settings['environment'] = self::ENVIRONMENT_SUT;
Expand Down Expand Up @@ -345,7 +345,7 @@ public function testEnvironmentOverrides(): void {

// Verify settings overrides.
$settings['auto_create_htaccess'] = FALSE;
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['config_sync_directory'] = 'custom_config';
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['entity_update_batch_size'] = 50;
Expand Down Expand Up @@ -432,7 +432,7 @@ public function testEnvironmentLocal(): void {
$this->assertConfig($config);

$settings['auto_create_htaccess'] = FALSE;
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['disable_captcha'] = TRUE;
$settings['entity_update_batch_size'] = 50;
Expand Down Expand Up @@ -490,7 +490,7 @@ public function testEnvironmentLocalContainer(): void {
$this->assertConfig($config);

$settings['auto_create_htaccess'] = FALSE;
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['disable_captcha'] = TRUE;
$settings['entity_update_batch_size'] = 50;
Expand Down Expand Up @@ -571,7 +571,7 @@ public function testEnvironmentGha(): void {
$this->assertConfig($config);

$settings['auto_create_htaccess'] = FALSE;
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['disable_captcha'] = TRUE;
$settings['entity_update_batch_size'] = 50;
Expand Down Expand Up @@ -647,7 +647,7 @@ public function testEnvironmentLagoonPreview(): void {

$settings['auto_create_htaccess'] = FALSE;
$settings['cache_prefix']['default'] = 'test_project_test_branch';
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['config_sync_directory'] = '../config/default';
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['entity_update_batch_size'] = 50;
Expand Down Expand Up @@ -707,7 +707,7 @@ public function testEnvironmentLagoonDev(): void {

$settings['auto_create_htaccess'] = FALSE;
$settings['cache_prefix']['default'] = 'test_project_develop';
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['config_sync_directory'] = '../config/default';
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['entity_update_batch_size'] = 50;
Expand Down Expand Up @@ -760,14 +760,14 @@ public function testEnvironmentLagoonTest(): void {
$config['shield.settings']['shield_enable'] = TRUE;
$config['system.performance']['cache']['page']['max_age'] = 900;
$config['testmode.settings']['views_node'] = ['content', 'civictheme_automated_list'];
$config['reroute_email.settings']['enable'] = FALSE;
$config['reroute_email.settings']['enable'] = TRUE;
$config['reroute_email.settings']['address'] = 'webmaster@drevops.com';
$config['reroute_email.settings']['allowed'] = '*@drevops.com';
$this->assertConfig($config);

$settings['auto_create_htaccess'] = FALSE;
$settings['cache_prefix']['default'] = 'test_project_master';
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['config_sync_directory'] = '../config/default';
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['entity_update_batch_size'] = 50;
Expand Down Expand Up @@ -827,7 +827,7 @@ public function testEnvironmentLagoonProd(): void {

$settings['auto_create_htaccess'] = FALSE;
$settings['cache_prefix']['default'] = 'test_project_production';
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'sdc_devel', 'testmode'];
$settings['config_exclude_modules'] = ['devel', 'do_generated_content', 'generated_content', 'purge_control', 'reroute_email', 'sdc_devel', 'testmode'];
$settings['config_sync_directory'] = '../config/default';
$settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml';
$settings['entity_update_batch_size'] = 50;
Expand Down
17 changes: 14 additions & 3 deletions tests/phpunit/Drupal/SwitchableSettingsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -717,12 +717,12 @@ public static function dataProviderRerouteEmail(): \Iterator {
],
];

// Stage: disabled by default.
// Stage: enabled by default.
yield [
self::ENVIRONMENT_STAGE,
[],
[
'reroute_email.settings' => ['enable' => FALSE, 'address' => 'webmaster@drevops.com', 'allowed' => '*@drevops.com'],
'reroute_email.settings' => ['enable' => TRUE, 'address' => 'webmaster@drevops.com', 'allowed' => '*@drevops.com'],
Comment thread
coderabbitai[bot] marked this conversation as resolved.
],
];

Expand Down Expand Up @@ -757,6 +757,17 @@ public static function dataProviderRerouteEmail(): \Iterator {
],
];

// Stage with DRUPAL_REROUTE_EMAIL_DISABLED: forced off.
yield [
self::ENVIRONMENT_STAGE,
[
'DRUPAL_REROUTE_EMAIL_DISABLED' => 1,
],
[
'reroute_email.settings' => ['enable' => FALSE],
],
];

// Custom address and allowed list.
yield [
self::ENVIRONMENT_DEV,
Expand Down Expand Up @@ -980,7 +991,7 @@ public static function dataProviderMailCollector(): \Iterator {
],
];

// Stage: delivered to the original recipients.
// Stage: rerouted, then delivered to the rerouting address.
yield [
self::ENVIRONMENT_STAGE,
[],
Expand Down
13 changes: 8 additions & 5 deletions web/sites/default/includes/modules/settings.reroute_email.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,21 @@

declare(strict_types=1);

$settings['config_exclude_modules'][] = 'reroute_email';

$config['reroute_email.settings']['address'] = getenv('DRUPAL_REROUTE_EMAIL_ADDRESS') ?: 'webmaster@drevops.com';
$config['reroute_email.settings']['allowed'] = getenv('DRUPAL_REROUTE_EMAIL_ALLOWED') ?: '*@drevops.com';

if (!in_array($settings['environment'], [ENVIRONMENT_LOCAL, ENVIRONMENT_CI, ENVIRONMENT_STAGE, ENVIRONMENT_PROD], TRUE)) {
if (in_array($settings['environment'], [ENVIRONMENT_LOCAL, ENVIRONMENT_CI, ENVIRONMENT_PROD], TRUE)) {
// Deliver every message to its intended recipient. Local and CI capture
// outgoing mail by other means, and production sends to real recipients.
$config['reroute_email.settings']['enable'] = FALSE;
}
else {
// Send every outgoing message to the address above instead of to its
// intended recipient, unless that recipient matches the allowed list.
$config['reroute_email.settings']['enable'] = TRUE;
}
else {
// Deliver every message to its intended recipient.
$config['reroute_email.settings']['enable'] = FALSE;
}

// Allow an environment to opt out of the rerouting set above.
if (!empty(getenv('DRUPAL_REROUTE_EMAIL_DISABLED'))) {
Expand Down
Loading