getEntityTypeId(); $check_types = ['node', 'inline_entity', 'paragraph']; if($operation != 'view' || !in_array($type, $check_types)) { return AccessResult::neutral(); } $language = Drupal::languageManager()->getCurrentLanguage(); if ($entity->language()->getId() == $language->getId()) { return AccessResult::neutral(); } // If viewing a node that is not translated // to current language, redirect user to frontpage if ($type == 'node') { $node = Drupal::routeMatch()->getParameter('node'); if (isset($node) && $node->id() == $entity->id()) { $url = Url::fromRoute('', [], ['language' => $language]); $response = new RedirectResponse($url->toString()); $response->send(); } } return AccessResult::forbidden(); }