diff --git a/config/listeners.php b/config/listeners.php index 68dad46..03c477e 100644 --- a/config/listeners.php +++ b/config/listeners.php @@ -55,7 +55,7 @@ service(ConfigLoader::class), service('contao.intl.locales'), service(TranslatorInterface::class), - service('security.helper'), + service('request_stack'), ]) ; @@ -65,7 +65,7 @@ service(ConfigLoader::class), service('contao.framework'), service('database_connection'), - service('security.helper'), + service('request_stack'), service('twig'), service('contao.intl.locales'), ]) @@ -124,7 +124,7 @@ service('request_stack'), service(Formatter::class), service('contao.routing.scope_matcher'), - service('security.helper'), + service('security_token_storage'), service('twig'), ]) ; diff --git a/src/EventListener/Backend/DataContainer/LanguageListener.php b/src/EventListener/Backend/DataContainer/LanguageListener.php index 53b3b1e..2de1bdf 100644 --- a/src/EventListener/Backend/DataContainer/LanguageListener.php +++ b/src/EventListener/Backend/DataContainer/LanguageListener.php @@ -4,13 +4,13 @@ namespace Terminal42\NotificationCenterBundle\EventListener\Backend\DataContainer; -use Contao\BackendUser; use Contao\CoreBundle\DependencyInjection\Attribute\AsCallback; use Contao\CoreBundle\Intl\Locales; use Contao\DataContainer; use Doctrine\DBAL\Connection; use Doctrine\DBAL\Types\Types; -use Symfony\Component\Security\Core\Security; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Contracts\Translation\TranslatorInterface; use Terminal42\NotificationCenterBundle\Backend\AutoSuggester; use Terminal42\NotificationCenterBundle\Config\ConfigLoader; @@ -25,7 +25,7 @@ public function __construct( private ConfigLoader $configLoader, private Locales $locales, private TranslatorInterface $translator, - private Security $security, + private RequestStack $requestStack, ) { } @@ -44,8 +44,10 @@ public function onLoadCallback(DataContainer $dc): void $GLOBALS['TL_DCA']['tl_nc_language']['palettes']['default'] = $GLOBALS['TL_DCA']['tl_nc_language']['palettes'][$gateway->getType()]; } - if (($user = $this->security->getUser()) instanceof BackendUser) { - $GLOBALS['TL_DCA']['tl_nc_language']['fields']['language']['default'] = $user->language; + $request = $this->requestStack->getCurrentRequest(); + + if ($request instanceof Request) { + $GLOBALS['TL_DCA']['tl_nc_language']['fields']['language']['default'] = $request->getLocale(); } if ( diff --git a/src/EventListener/Backend/DataContainer/MessageListener.php b/src/EventListener/Backend/DataContainer/MessageListener.php index c0ea12d..c8e088f 100644 --- a/src/EventListener/Backend/DataContainer/MessageListener.php +++ b/src/EventListener/Backend/DataContainer/MessageListener.php @@ -10,7 +10,7 @@ use Contao\CoreBundle\Intl\Locales; use Contao\DataContainer; use Doctrine\DBAL\Connection; -use Symfony\Component\Security\Core\Security; +use Symfony\Component\HttpFoundation\RequestStack; use Terminal42\NotificationCenterBundle\Backend\AutoSuggester; use Terminal42\NotificationCenterBundle\Config\ConfigLoader; use Twig\Environment; @@ -22,7 +22,7 @@ public function __construct( private readonly ConfigLoader $configLoader, private readonly ContaoFramework $framework, private readonly Connection $connection, - private readonly Security $security, + private readonly RequestStack $requestStack, private readonly Environment $twig, private readonly Locales $locales, ) { @@ -39,7 +39,7 @@ public function onChildRecordCallback(array $row): string } $gateway = $this->configLoader->loadGateway($message->getGateway()); - $languageNames = $this->locales->getLocales($this->security->getUser()?->language ?? null); + $languageNames = $this->locales->getLocales($this->requestStack->getCurrentRequest()?->getLocale()); $query = $this->connection->createQueryBuilder() ->select('id, language') diff --git a/src/EventListener/UpdatePersonalDataListener.php b/src/EventListener/UpdatePersonalDataListener.php index 8a3b11f..32a2105 100644 --- a/src/EventListener/UpdatePersonalDataListener.php +++ b/src/EventListener/UpdatePersonalDataListener.php @@ -13,7 +13,7 @@ use Soundasleep\Html2Text; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; -use Symfony\Component\Security\Core\Security; +use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Terminal42\NotificationCenterBundle\NotificationCenter; use Twig\Environment; @@ -26,7 +26,7 @@ public function __construct( private readonly RequestStack $requestStack, private readonly Formatter $formatter, private readonly ScopeMatcher $scopeMatcher, - private readonly Security $security, + private readonly TokenStorageInterface $tokenStorage, private readonly Environment $twig, ) { } @@ -35,7 +35,7 @@ public function __construct( public function storePersonalData(): void { $request = $this->requestStack->getCurrentRequest(); - $user = $this->security->getUser(); + $user = $this->tokenStorage->getToken()?->getUser(); if (!$request instanceof Request || !$this->scopeMatcher->isFrontendRequest($request) || !$user instanceof FrontendUser) { return;