diff --git a/core/modules/book/book.services.yml b/core/modules/book/book.services.yml index 9d8c140..af61b1e 100644 --- a/core/modules/book/book.services.yml +++ b/core/modules/book/book.services.yml @@ -2,3 +2,7 @@ services: book.manager: class: Drupal\book\BookManager arguments: ['@database', '@plugin.manager.entity'] + access_check.book: + class: Drupal\book\Access\BookAccessCheck + tags: + - { name: access_check } diff --git a/core/modules/book/lib/Drupal/book/Access/BookAccessCheck.php b/core/modules/book/lib/Drupal/book/Access/BookAccessCheck.php new file mode 100644 index 0000000..9145eb6 --- /dev/null +++ b/core/modules/book/lib/Drupal/book/Access/BookAccessCheck.php @@ -0,0 +1,40 @@ +bookManager = $book_manager; + } + + /** + * {@inheritdoc} + */ + public function applies(Route $route) { + return array_key_exists('book_export_access', $route->getRequirements()); + } + + /** + * {@inheritdoc} + */ + public function access(Route $route, Request $request) { + return export_access('administer access') && $this->bookManager->getDefinition($request->attributes->get('key')); + } +}