From ca17abce2d3963e266bee905ab084ddfa7e1ff18 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Fri, 30 Sep 2016 21:01:36 +0200 Subject: Create user config in one place Using a listener, user config is now created when a user: - is created from the command line - register (with or without email confirmation) - is created from the config panel --- .../EventListener/CreateConfigListener.php | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/Wallabag/UserBundle/EventListener/CreateConfigListener.php (limited to 'src/Wallabag/UserBundle/EventListener/CreateConfigListener.php') diff --git a/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php new file mode 100644 index 00000000..15f4ac3d --- /dev/null +++ b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php @@ -0,0 +1,62 @@ +em = $em; + $this->theme = $theme; + $this->itemsOnPage = $itemsOnPage; + $this->rssLimit = $rssLimit; + $this->language = $language; + $this->readingSpeed = $readingSpeed; + } + + public static function getSubscribedEvents() + { + return [ + // when a user register using the normal form + FOSUserEvents::REGISTRATION_COMPLETED => 'createConfig', + // when we manually create a user using the command line + // OR when we create it from the config UI + FOSUserEvents::USER_CREATED => 'createConfig', + ]; + } + + public function createConfig(UserEvent $event, $eventName = null, EventDispatcherInterface $eventDispatcher = null) + { + if (!$event->getUser()->isEnabled()) { + return; + } + + $config = new Config($event->getUser()); + $config->setTheme($this->theme); + $config->setItemsPerPage($this->itemsOnPage); + $config->setRssLimit($this->rssLimit); + $config->setLanguage($this->language); + $config->setReadingSpeed($this->readingSpeed); + + $this->em->persist($config); + $this->em->flush(); + } +} -- cgit v1.2.3 From 755ff9e835614fd66f67615aede950b38f8ab308 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Tue, 4 Oct 2016 10:42:45 +0200 Subject: Create config even if user is disabled When a user register itself AND the wallabag instance is configured to send a confirmation email, the user is disabled when the listener (which create the config) receive the event. There were a check (don't know why) if the user is enabled we create the config. But the user is disabled when confirmation email is actived. --- src/Wallabag/UserBundle/EventListener/CreateConfigListener.php | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src/Wallabag/UserBundle/EventListener/CreateConfigListener.php') diff --git a/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php index 15f4ac3d..8e2f04e9 100644 --- a/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php +++ b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php @@ -45,10 +45,6 @@ class CreateConfigListener implements EventSubscriberInterface public function createConfig(UserEvent $event, $eventName = null, EventDispatcherInterface $eventDispatcher = null) { - if (!$event->getUser()->isEnabled()) { - return; - } - $config = new Config($event->getUser()); $config->setTheme($this->theme); $config->setItemsPerPage($this->itemsOnPage); -- cgit v1.2.3