X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Flayout_builder%2Fsrc%2FRouting%2FLayoutBuilderRoutesTrait.php;h=d06b95324b9869e4d20a8fcbf0279ad4e7021f31;hb=5b8bb166bfa98770daef9de5c127fc2e6ef02340;hp=febedbe31efdc98b95e84a4565d0d06f7726c52a;hpb=af6d1fb995500ae68849458ee10d66abbdcfb252;p=yaffs-website diff --git a/web/core/modules/layout_builder/src/Routing/LayoutBuilderRoutesTrait.php b/web/core/modules/layout_builder/src/Routing/LayoutBuilderRoutesTrait.php index febedbe31..d06b95324 100644 --- a/web/core/modules/layout_builder/src/Routing/LayoutBuilderRoutesTrait.php +++ b/web/core/modules/layout_builder/src/Routing/LayoutBuilderRoutesTrait.php @@ -3,6 +3,7 @@ namespace Drupal\layout_builder\Routing; use Drupal\Component\Utility\NestedArray; +use Drupal\layout_builder\DefaultsSectionStorageInterface; use Drupal\layout_builder\OverridesSectionStorageInterface; use Drupal\layout_builder\SectionStorage\SectionStorageDefinition; use Symfony\Component\Routing\Route; @@ -43,6 +44,7 @@ trait LayoutBuilderRoutesTrait { $defaults['section_storage'] = ''; // Trigger the layout builder access check. $requirements['_has_layout_section'] = 'true'; + $requirements['_layout_builder_access'] = 'view'; // Trigger the layout builder RouteEnhancer. $options['_layout_builder'] = TRUE; // Trigger the layout builder param converter. @@ -92,6 +94,17 @@ trait LayoutBuilderRoutesTrait { ->setOptions($options); $collection->add("$route_name_prefix.revert", $route); } + elseif (is_subclass_of($definition->getClass(), DefaultsSectionStorageInterface::class)) { + $disable_defaults = $defaults; + $disable_defaults['_form'] = '\Drupal\layout_builder\Form\LayoutBuilderDisableForm'; + $disable_options = $options; + unset($disable_options['_admin_route'], $disable_options['_layout_builder']); + $route = (new Route("$path/disable")) + ->setDefaults($disable_defaults) + ->setRequirements($requirements) + ->setOptions($disable_options); + $collection->add("$route_name_prefix.disable", $route); + } } }