factory->createItem('root'); } protected function getDefaultRouteParameters(string $parameter = 'id', string $default = '0'): array { $request = $this->requestStack->getMainRequest(); return [ $parameter => $request->get($parameter, $default), 'r' => $request->get('r'), ]; } protected function addAdminItem(ItemInterface $menu): void { if ($this->security->isGranted('ROLE_ADMIN')) { $this->addDivider($menu); $menu->addChild('zum Adminbereich', [ 'route' => 'app_admin_index', 'linkAttributes' => [ 'title' => 'zum Adminbereich', ], 'extras' => [ 'icon' => 'user', ], ]); } } protected function addManagerItem(ItemInterface $menu): void { if ($this->security->isGranted('ROLE_MANAGER')) { $this->addDivider($menu); $menu->addChild('zum Managementbereich', [ 'route' => 'app_manager_index', 'linkAttributes' => [ 'title' => 'zum Managementbereich', ], 'extras' => [ 'icon' => 'user', ], ]); } } protected function addTeamerItem(ItemInterface $menu): void { if ($this->security->isGranted('ROLE_TEAMER')) { $this->addDivider($menu); $menu->addChild('zum Teambereich', [ 'route' => 'app_teamer_index', 'linkAttributes' => [ 'title' => 'zum Teambereich', ], 'extras' => [ 'icon' => 'user', ], ]); } } protected function addHouseManagerItem(ItemInterface $menu): void { if ($this->security->isGranted('ROLE_HOUSE_MANAGER')) { $this->addDivider($menu); $menu->addChild('zum Hausleitungsbereich', [ 'route' => 'app_house_manager_index', 'linkAttributes' => [ 'title' => 'zum Hausleitungsbereich', ], 'extras' => [ 'icon' => 'user', ], ]); } } protected function addLogoutItem(ItemInterface $menu): void { $this->addDivider($menu); $token = $this->security->getToken(); if ($token instanceof SwitchUserToken) { /** @var User $originalUser */ $originalUser = $token->getOriginalToken()->getUser(); $menu->addChild('zum eigenen Benutzer', [ 'route' => $originalUser->getDefaultRoute(), 'routeParameters' => ['_switch_user' => '_exit'], 'linkAttributes' => [ 'title' => 'zurück', ], 'extras' => [ 'icon' => 'logout', ], ]); } else { $menu->addChild('Logout', [ 'route' => 'app_security_logout', 'linkAttributes' => [ 'title' => 'Logout', ], 'extras' => [ 'icon' => 'logout', ], ]); } } protected function addDivider(ItemInterface $menu): void { $menu->addChild(Uuid::v4(), [ 'extras' => [ 'divider' => true, ], ]); } }