tokenStorage = $tokenStorage; $this->translator = $translator; $this->authorizationHelper = $authorizationHelper; } public function buildMenu($menuId, MenuItem $menu, array $parameters) { /* @var $person \Chill\PersonBundle\Entity\Person */ $person = $parameters['person']; $user = $this->tokenStorage->getToken()->getUser(); $roleSee = new Role(EventVoter::SEE); // ASK use authorizationHelper or authorizationChecker ?? if ($this->authorizationHelper->userHasAccess($user, $person, $roleSee)) { $menu->addChild($this->translator->trans('Events participation'), [ 'route' => 'chill_event__list_by_person', 'routeParameters' => [ 'person_id' => $person->getId() ] ]) ->setExtras([ 'order' => 500 ]); } } public static function getMenuIds(): array { return [ 'person' ]; } }