You are here

protected function MenuLinkContentVisibilityLinkTreeManipulator::mergeCacheabilityFromConditions in Custom Menu Links Visibility 2.x

Merges cacheable metadata from conditions.

Parameters

\Drupal\Core\Access\AccessResultInterface $access_result: The access result object.

\Drupal\Core\Condition\ConditionInterface[] $conditions: List of visibility conditions.

1 call to MenuLinkContentVisibilityLinkTreeManipulator::mergeCacheabilityFromConditions()
MenuLinkContentVisibilityLinkTreeManipulator::menuLinkCheckAccess in src/MenuLinkContentVisibilityLinkTreeManipulator.php
Checks access for one menu link instance.

File

src/MenuLinkContentVisibilityLinkTreeManipulator.php, line 193

Class

MenuLinkContentVisibilityLinkTreeManipulator
Defines the access control handler for the menu item.

Namespace

Drupal\menu_link_content_visibility

Code

protected function mergeCacheabilityFromConditions(AccessResultInterface $access_result, array $conditions) {
  foreach ($conditions as $condition) {
    if ($condition instanceof CacheableDependencyInterface) {
      if ($access_result instanceof RefinableCacheableDependencyInterface) {
        $access_result
          ->addCacheTags($condition
          ->getCacheTags());
        $access_result
          ->addCacheContexts($condition
          ->getCacheContexts());
      }
      $access_result
        ->setCacheMaxAge(Cache::mergeMaxAges($access_result
        ->getCacheMaxAge(), $condition
        ->getCacheMaxAge()));
    }
  }
}