requestIsForHomePage($event) && $this->currentUserShouldBeDirectedToAlternativeHomePage()){ $this->redirectToAlternativeHomePage($event); } } private function requestIsForHomePage($event):bool { return $event->getRequest()->getRequestUri() == '/'; } private function currentUserShouldBeDirectedToAlternativeHomePage():bool { return $this->currentUserCanSeeAllCases(); } private function currentUserCanSeeAllCases():bool { return \Drupal::currentUser()->hasPermission('view published case entities'); } private function redirectToAlternativeHomePage(GetResponseEvent $event):void { $redirect_target_url = Url::fromUserInput($this->alternativeHomePage); $response = new RedirectResponse($redirect_target_url->setAbsolute()->toString()); $event->setResponse($response); } }