diff --git a/core/modules/user/src/Entity/User.php b/core/modules/user/src/Entity/User.php index aefa2a43c6..f7859eeddb 100644 --- a/core/modules/user/src/Entity/User.php +++ b/core/modules/user/src/Entity/User.php @@ -108,14 +108,6 @@ public function preSave(EntityStorageInterface $storage) { \Drupal::service('user.data')->set('user', $this->id(), substr($key, 5), $this->{$key}); } } - - // Set the default timezone if necessary. - if (!$this->getTimeZone()) { - $config = \Drupal::config('system.date'); - if ($config->get('timezone.user.configurable') && $config->get('timezone.user.default') == UserInterface::TIMEZONE_DEFAULT) { - $this->set('timezone', $config->get('timezone.default')); - } - } } /** @@ -525,6 +517,11 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { ]); $fields['timezone']->getItemDefinition()->setClass(TimeZoneItem::class); + $config = \Drupal::config('system.date'); + if ($config->get('timezone.user.configurable') && $config->get('timezone.user.default') == UserInterface::TIMEZONE_DEFAULT) { + $fields['timezone']->setDefaultValue($config->get('timezone.default')); + } + $fields['status'] = BaseFieldDefinition::create('boolean') ->setLabel(t('User status')) ->setDescription(t('Whether the user is active or blocked.')) diff --git a/core/modules/user/tests/src/Kernel/Migrate/d6/MigrateUserTest.php b/core/modules/user/tests/src/Kernel/Migrate/d6/MigrateUserTest.php index 558d3d01f8..1024071a27 100644 --- a/core/modules/user/tests/src/Kernel/Migrate/d6/MigrateUserTest.php +++ b/core/modules/user/tests/src/Kernel/Migrate/d6/MigrateUserTest.php @@ -106,7 +106,7 @@ public function testUser() { $is_blocked = $source->status == 0; $this->assertSame($is_blocked, $user->isBlocked()); $expected_timezone_name = $source->timezone_name ?: $this->config('system.date')->get('timezone.default'); - $this->assertSame($expected_timezone_name, $user->getTimeZone()); + $this->assertEquals($expected_timezone_name, $user->getTimeZone()); $this->assertSame($source->init, $user->getInitialEmail()); $this->assertSame($roles, $user->getRoles());