tokenStorage = $tokenStorage; $this->translator = $translator; } public function onUserMenuConfigure(UserMenuEvent $event): void { $menu = $event->getItem(); $menu->addChild('start', [ 'route' => 'homepage', 'attributes' => [ 'icon' => 'fab fa-font-awesome-flag' ] ]); $menu->addChild('imprint', [ 'route' => 'imprint', 'attributes' => [ 'icon' => 'fas fa-address-card' ] ]); $dropdown = $menu->addChild('user', [ 'attributes' => [ 'dropdown' => true, 'icon' => 'fas fa-user' ] ]); /** * @todo replace the following check trough fos bundle */ if ($this->tokenStorage->getToken()->getRoles()) { $dropdown->addChild('logout', [ 'route' => 'logout', 'attributes' => [ 'icon' => 'fas fa-sign-out-alt', 'divider_append' => true, ] ]); } else { $dropdown->addChild('login', [ 'route' => 'fos_user_security_login', 'attributes' => [ 'divider_append' => true, 'icon' => 'fas fa-sign-in-alt' ] ]); } $dropdown->addChild('register', [ 'route' => 'fos_user_registration_register', 'attributes' => [ 'icon' => 'fas fa-file-signature' ] ]); } public static function getSubscribedEvents(): array { return [ UserMenuEvent::EVENT => 'onUserMenuConfigure' ]; } }