Mercurial > hg > isophonics-drupal-site
diff core/modules/layout_builder/src/Access/LayoutBuilderAccessCheck.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
children | af1871eacc83 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/layout_builder/src/Access/LayoutBuilderAccessCheck.php Thu Feb 28 13:21:36 2019 +0000 @@ -0,0 +1,40 @@ +<?php + +namespace Drupal\layout_builder\Access; + +use Drupal\Core\Cache\RefinableCacheableDependencyInterface; +use Drupal\Core\Routing\Access\AccessInterface; +use Drupal\Core\Session\AccountInterface; +use Drupal\layout_builder\SectionStorageInterface; +use Symfony\Component\Routing\Route; + +/** + * Provides an access check for the Layout Builder defaults. + * + * @internal + */ +class LayoutBuilderAccessCheck implements AccessInterface { + + /** + * Checks routing access to the layout. + * + * @param \Drupal\layout_builder\SectionStorageInterface $section_storage + * The section storage. + * @param \Drupal\Core\Session\AccountInterface $account + * The current user. + * @param \Symfony\Component\Routing\Route $route + * The route to check against. + * + * @return \Drupal\Core\Access\AccessResultInterface + * The access result. + */ + public function access(SectionStorageInterface $section_storage, AccountInterface $account, Route $route) { + $operation = $route->getRequirement('_layout_builder_access'); + $access = $section_storage->access($operation, $account, TRUE); + if ($access instanceof RefinableCacheableDependencyInterface) { + $access->addCacheableDependency($section_storage); + } + return $access; + } + +}