diff --git c/core/modules/search/lib/Drupal/search/Access/SearchAccessCheck.php w/core/modules/search/lib/Drupal/search/Access/SearchAccessCheck.php index d607fd7..fb9a74e 100644 --- c/core/modules/search/lib/Drupal/search/Access/SearchAccessCheck.php +++ w/core/modules/search/lib/Drupal/search/Access/SearchAccessCheck.php @@ -37,8 +37,8 @@ public function __construct(SearchPluginManager $search_plugin_manager) { /** * {@inheritdoc} */ - public function applies(Route $route) { - return array_key_exists('search_content', $route->getRequirements()); + public function appliesTo() { + return array('_search_access'); } /** diff --git c/core/modules/search/lib/Drupal/search/Access/SearchPluginAccessCheck.php w/core/modules/search/lib/Drupal/search/Access/SearchPluginAccessCheck.php index f82e52e..977c08d 100644 --- c/core/modules/search/lib/Drupal/search/Access/SearchPluginAccessCheck.php +++ w/core/modules/search/lib/Drupal/search/Access/SearchPluginAccessCheck.php @@ -18,11 +18,16 @@ class SearchPluginAccessCheck extends SearchAccessCheck { /** * {@inheritdoc} */ + public function appliesTo() { + return array('_search_plugin_view_access'); + } + /** + * {@inheritdoc} + */ public function access(Route $route, Request $request) { $account = $request->attributes->get('_account'); $requirements = $route->getRequirements(); $plugin_id = $requirements['_search_plugin_view_access']; - $access = !empty($account) && $account->hasPermission('search content'); return $access && $this->searchManager->pluginAccess($plugin_id, $account); } } diff --git c/core/modules/search/lib/Drupal/search/Routing/SearchRouteSubscriber.php w/core/modules/search/lib/Drupal/search/Routing/SearchRouteSubscriber.php index ada6075..a66df26 100644 --- c/core/modules/search/lib/Drupal/search/Routing/SearchRouteSubscriber.php +++ w/core/modules/search/lib/Drupal/search/Routing/SearchRouteSubscriber.php @@ -23,7 +23,7 @@ class SearchRouteSubscriber implements EventSubscriberInterface { * * @var \Drupal\search\SearchPluginManager */ - protected $searchPluginManager; + protected $searchManager; /** * Constructs a new search route subscriber. @@ -32,7 +32,7 @@ class SearchRouteSubscriber implements EventSubscriberInterface { * The search plugin manager. */ public function __construct(SearchPluginManager $search_plugin_manager) { - $this->searchPluginManager = $search_plugin_manager; + $this->searchManager = $search_plugin_manager; } /** @@ -52,20 +52,22 @@ public static function getSubscribedEvents() { public function routes(RouteBuildEvent $event) { $collection = $event->getRouteCollection(); - $default_info = search_get_default_plugin_info(); - if ($default_info) { - foreach ($this->searchPluginManager->getActiveDefinitions() as $plugin_id => $search_info) { - $route = new Route( - 'search/' . $search_info['path'], - array( - '_content' => 'Drupal\search\Controller\SearchController::searchView', - 'plugin_id' => $plugin_id, - 'keys' => '', - ), - array('_search_plugin_view_access' => $plugin_id) - ); - $collection->add('search_view.' . $plugin_id, $route); - } + foreach ($this->searchManager->getActiveDefinitions() as $plugin_id => $search_info) { + $path = 'search/' . $search_info['path']; + $defaults = array( + '_content' => 'Drupal\search\Controller\SearchController::searchView', + 'plugin_id' => $plugin_id, + 'keys' => '', + ); + $requirements = array( + '_search_plugin_view_access' => $plugin_id, + '_permission' => 'search content', + ); + $options = array( + '_access_mode' => 'ALL', + ); + $route = new Route($path, $defaults, $requirements, $options); + $collection->add('search_view.' . $plugin_id, $route); } } } diff --git c/core/modules/search/search.routing.yml w/core/modules/search/search.routing.yml index 3e76916..0094b77 100644 --- c/core/modules/search/search.routing.yml +++ w/core/modules/search/search.routing.yml @@ -18,6 +18,8 @@ search_view: _content: '\Drupal\search\Controller\SearchController::view' plugin_id: NULL keys: '' + options: + _access_mode: 'ALL' requirements: _permission: 'search content' - _access_mode: 'ALL' + _search_access: 'TRUE'