Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / layout_builder / src / Routing / LayoutBuilderRoutesTrait.php
index febedbe31efdc98b95e84a4565d0d06f7726c52a..d06b95324b9869e4d20a8fcbf0279ad4e7021f31 100644 (file)
@@ -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);
+    }
   }
 
 }