This commit is contained in:
Kevin Frantz
2018-09-06 09:44:29 +02:00
parent f86b9a0f75
commit 36b9020c01
11 changed files with 301 additions and 3 deletions

View File

@@ -0,0 +1,54 @@
<?php
// src/Subscriber/UserMenuSubscriber.php
namespace App\Subscriber;
use App\Entity\User;
use App\Event\Menu\Topbar\UserMenuEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Translation\TranslatorInterface;
class UserMenuSubscriber implements EventSubscriberInterface
{
/**
* @var TokenStorageInterface
*/
private $tokenStorage;
/**
* @var TranslatorInterface
*/
private $translator;
public function __construct(TokenStorageInterface $tokenStorage, TranslatorInterface $translator)
{
$this->tokenStorage = $tokenStorage;
$this->translator = $translator;
}
public function onUserMenuConfigure(UserMenuEvent $event)
{
$menu = $event->getItem();
/** @var User $user */
$user = $this->tokenStorage->getToken()->getUser();
$dropdown = $menu->addChild(
$this->translator->trans('Hello %username%', ['%username%' => 'Noname'], 'usermenu'),
['dropdown' => true]
);
$dropdown->addChild(
$this->translator->trans('Login', [], 'usermenu'),
['route' => 'user_login']
);
}
public static function getSubscribedEvents(): array
{
return [
UserMenuEvent::EVENT => 'onUserMenuConfigure',
];
}
}