X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fcontent_translation%2Fsrc%2FRouting%2FContentTranslationRouteSubscriber.php;fp=web%2Fcore%2Fmodules%2Fcontent_translation%2Fsrc%2FRouting%2FContentTranslationRouteSubscriber.php;h=fa1ac3bbf902a582ef2c2f40c2d3b5ef42ba3575;hp=6aae426abe31116bcf24c8aa7265178f3c3d0e92;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/core/modules/content_translation/src/Routing/ContentTranslationRouteSubscriber.php b/web/core/modules/content_translation/src/Routing/ContentTranslationRouteSubscriber.php index 6aae426ab..fa1ac3bbf 100644 --- a/web/core/modules/content_translation/src/Routing/ContentTranslationRouteSubscriber.php +++ b/web/core/modules/content_translation/src/Routing/ContentTranslationRouteSubscriber.php @@ -2,6 +2,7 @@ namespace Drupal\content_translation\Routing; +use Drupal\content_translation\ContentTranslationManager; use Drupal\content_translation\ContentTranslationManagerInterface; use Drupal\Core\Routing\RouteSubscriberBase; use Drupal\Core\Routing\RoutingEvents; @@ -55,6 +56,7 @@ class ContentTranslationRouteSubscriber extends RouteSubscriberBase { } $path = $base_path . '/translations'; + $load_latest_revision = ContentTranslationManager::isPendingRevisionSupportEnabled($entity_type_id); $route = new Route( $path, @@ -70,6 +72,7 @@ class ContentTranslationRouteSubscriber extends RouteSubscriberBase { 'parameters' => [ $entity_type_id => [ 'type' => 'entity:' . $entity_type_id, + 'load_latest_revision' => $load_latest_revision, ], ], '_admin_route' => $is_admin, @@ -102,6 +105,7 @@ class ContentTranslationRouteSubscriber extends RouteSubscriberBase { ], $entity_type_id => [ 'type' => 'entity:' . $entity_type_id, + 'load_latest_revision' => $load_latest_revision, ], ], '_admin_route' => $is_admin, @@ -127,6 +131,7 @@ class ContentTranslationRouteSubscriber extends RouteSubscriberBase { ], $entity_type_id => [ 'type' => 'entity:' . $entity_type_id, + 'load_latest_revision' => $load_latest_revision, ], ], '_admin_route' => $is_admin, @@ -152,12 +157,21 @@ class ContentTranslationRouteSubscriber extends RouteSubscriberBase { ], $entity_type_id => [ 'type' => 'entity:' . $entity_type_id, + 'load_latest_revision' => $load_latest_revision, ], ], '_admin_route' => $is_admin, ] ); $collection->add("entity.$entity_type_id.content_translation_delete", $route); + + // Add our custom translation deletion access checker. + if ($load_latest_revision) { + $entity_delete_route = $collection->get("entity.$entity_type_id.delete_form"); + if ($entity_delete_route) { + $entity_delete_route->addRequirements(['_access_content_translation_delete' => "$entity_type_id.delete"]); + } + } } }