Skip to content

Commit a19a753

Browse files
committed
Load EmailUpdateListener only if registration.confirmation is enabled
1 parent 4721961 commit a19a753

4 files changed

Lines changed: 22 additions & 9 deletions

File tree

DependencyInjection/FOSUserExtension.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public function load(array $configs, ContainerBuilder $container)
112112
}
113113

114114
if (!empty($config['registration'])) {
115-
$this->loadRegistration($config['registration'], $container, $loader, $config['from_email']);
115+
$this->loadRegistration($config['registration'], $container, $loader, $config['from_email'], $config['db_driver']);
116116
}
117117

118118
if (!empty($config['change_password'])) {
@@ -150,13 +150,18 @@ private function loadProfile(array $config, ContainerBuilder $container, XmlFile
150150
* @param ContainerBuilder $container
151151
* @param XmlFileLoader $loader
152152
* @param array $fromEmail
153+
* @param string $dbDriver
153154
*/
154-
private function loadRegistration(array $config, ContainerBuilder $container, XmlFileLoader $loader, array $fromEmail)
155+
private function loadRegistration(array $config, ContainerBuilder $container, XmlFileLoader $loader, array $fromEmail, $dbDriver)
155156
{
156157
$loader->load('registration.xml');
157158

158159
if ($config['confirmation']['enabled']) {
159160
$loader->load('email_confirmation.xml');
161+
162+
if ('custom' !== $dbDriver && isset(self::$doctrineDrivers[$dbDriver])) {
163+
$loader->load('email_update_listener.xml');
164+
}
160165
}
161166

162167
if (isset($config['confirmation']['from_email'])) {

Resources/config/doctrine.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,6 @@
2121
<argument type="service" id="fos_user.util.password_updater" />
2222
<argument type="service" id="fos_user.util.canonical_fields_updater" />
2323
</service>
24-
25-
<service id="fos_user.email_update_listener" class="FOS\UserBundle\Doctrine\EmailUpdateListener" public="false">
26-
<argument type="service" id="fos_user.email_update_confirmation"/>
27-
<argument type="service" id="request_stack" />
28-
<tag name="doctrine.event_listener" event="preUpdate" lazy="true" />
29-
</service>
3024
</services>
3125

3226
</container>

Resources/config/email_confirmation.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
<argument type="service" id="fos_user.email_encryption" />
2626
<argument type="service" id="event_dispatcher" />
2727
</service>
28-
2928
</services>
3029

3130
</container>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
3+
<container xmlns="http://symfony.com/schema/dic/services"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
6+
7+
<services>
8+
<service id="fos_user.email_update_listener" class="FOS\UserBundle\Doctrine\EmailUpdateListener" public="false">
9+
<argument type="service" id="fos_user.email_update_confirmation"/>
10+
<argument type="service" id="request_stack" />
11+
<tag name="doctrine.event_listener" event="preUpdate" lazy="true" />
12+
</service>
13+
</services>
14+
15+
</container>

0 commit comments

Comments
 (0)