From 5a6bee81cd627261cf9091665e8a2d9c8fee802a Mon Sep 17 00:00:00 2001 From: naomi Date: Sun, 10 Jul 2022 14:15:13 +0100 Subject: [PATCH] redirect home page by permission --- src/EventSubscriber/OpencaseSubscriber.php | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/EventSubscriber/OpencaseSubscriber.php diff --git a/src/EventSubscriber/OpencaseSubscriber.php b/src/EventSubscriber/OpencaseSubscriber.php new file mode 100644 index 0000000..7881b4f --- /dev/null +++ b/src/EventSubscriber/OpencaseSubscriber.php @@ -0,0 +1,59 @@ +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 all 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); + } +} \ No newline at end of file