Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 2  | 
      CRAP |         | 
      0.00%  | 
      0 / 14  | 
     
| ToolbarController |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 2  | 
      12 |         | 
      0.00%  | 
      0 / 14  | 
     
| subtreesAjax |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 11  | 
     |||
| checkSubTreeAccess |         | 
      0.00%  | 
      0 / 1  | 
      6 |         | 
      0.00%  | 
      0 / 3  | 
     |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\toolbar\Controller\ToolbarController. | |
| */ | |
| namespace Drupal\toolbar\Controller; | |
| use Drupal\Component\Utility\Crypt; | |
| use Drupal\Core\Access\AccessResult; | |
| use Drupal\Core\Ajax\AjaxResponse; | |
| use Drupal\Core\Controller\ControllerBase; | |
| use Drupal\toolbar\Ajax\SetSubtreesCommand; | |
| /** | |
| * Defines a controller for the toolbar module. | |
| */ | |
| class ToolbarController extends ControllerBase { | |
| /** | |
| * Returns an AJAX response to render the toolbar subtrees. | |
| * | |
| * @return \Drupal\Core\Ajax\AjaxResponse | |
| */ | |
| public function subtreesAjax() { | |
| list($subtrees, $cacheability) = toolbar_get_rendered_subtrees(); | |
| $response = new AjaxResponse(); | |
| $response->addCommand(new SetSubtreesCommand($subtrees)); | |
| // The Expires HTTP header is the heart of the client-side HTTP caching. The | |
| // additional server-side page cache only takes effect when the client | |
| // accesses the callback URL again (e.g., after clearing the browser cache | |
| // or when force-reloading a Drupal page). | |
| $max_age = 365 * 24 * 60 * 60; | |
| $response->setPrivate(); | |
| $response->setMaxAge($max_age); | |
| $expires = new \DateTime(); | |
| $expires->setTimestamp(REQUEST_TIME + $max_age); | |
| $response->setExpires($expires); | |
| return $response; | |
| } | |
| /** | |
| * Checks access for the subtree controller. | |
| * | |
| * @param string $hash | |
| * The hash of the toolbar subtrees. | |
| * | |
| * @return \Drupal\Core\Access\AccessResultInterface | |
| * The access result. | |
| */ | |
| public function checkSubTreeAccess($hash) { | |
| $expected_hash = _toolbar_get_subtrees_hash()[0]; | |
| return AccessResult::allowedIf($this->currentUser()->hasPermission('access toolbar') && Crypt::hashEquals($expected_hash, $hash))->cachePerPermissions(); | |
| } | |
| } |