Loading core/modules/user/src/Hook/UserRequirements.php +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ public function runtime(): array { $query->addExpression('LOWER(mail)', 'lower_mail'); $query->isNotNull('mail'); $query->groupBy('lower_mail'); $query->groupBy('langcode'); $query->having('COUNT(uid) > :matches', [':matches' => 1]); $conflicts = $query->countQuery()->execute()->fetchField(); Loading core/modules/user/tests/src/Kernel/UserRequirementsTest.php +18 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace Drupal\Tests\user\Kernel; use Drupal\KernelTests\KernelTestBase; use Drupal\language\Entity\ConfigurableLanguage; use Drupal\Tests\user\Traits\UserCreationTrait; /** Loading Loading @@ -70,4 +71,21 @@ public function testBlankUserEmails(): void { $this->assertArrayNotHasKey('conflicting emails', $output); } /** * Tests that the requirements check does not flag user translations. */ public function testTranslatedUserEmail(): void { \Drupal::service('module_installer')->install(['language']); ConfigurableLanguage::createFromLangcode('is')->save(); $output = $this->moduleHandler->invoke('user', 'runtime_requirements'); $this->assertArrayNotHasKey('conflicting emails', $output); $user = $this->createUser([], 'User A', FALSE, ['mail' => 'unique@example.com']); $user->addTranslation('is')->save(); $output = $this->moduleHandler->invoke('user', 'runtime_requirements'); $this->assertArrayNotHasKey('conflicting emails', $output); } } Loading
core/modules/user/src/Hook/UserRequirements.php +1 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ public function runtime(): array { $query->addExpression('LOWER(mail)', 'lower_mail'); $query->isNotNull('mail'); $query->groupBy('lower_mail'); $query->groupBy('langcode'); $query->having('COUNT(uid) > :matches', [':matches' => 1]); $conflicts = $query->countQuery()->execute()->fetchField(); Loading
core/modules/user/tests/src/Kernel/UserRequirementsTest.php +18 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace Drupal\Tests\user\Kernel; use Drupal\KernelTests\KernelTestBase; use Drupal\language\Entity\ConfigurableLanguage; use Drupal\Tests\user\Traits\UserCreationTrait; /** Loading Loading @@ -70,4 +71,21 @@ public function testBlankUserEmails(): void { $this->assertArrayNotHasKey('conflicting emails', $output); } /** * Tests that the requirements check does not flag user translations. */ public function testTranslatedUserEmail(): void { \Drupal::service('module_installer')->install(['language']); ConfigurableLanguage::createFromLangcode('is')->save(); $output = $this->moduleHandler->invoke('user', 'runtime_requirements'); $this->assertArrayNotHasKey('conflicting emails', $output); $user = $this->createUser([], 'User A', FALSE, ['mail' => 'unique@example.com']); $user->addTranslation('is')->save(); $output = $this->moduleHandler->invoke('user', 'runtime_requirements'); $this->assertArrayNotHasKey('conflicting emails', $output); } }