You are here

protected function UserLoginBlock::blockAccess in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/user/src/Plugin/Block/UserLoginBlock.php \Drupal\user\Plugin\Block\UserLoginBlock::blockAccess()
  2. 10 core/modules/user/src/Plugin/Block/UserLoginBlock.php \Drupal\user\Plugin\Block\UserLoginBlock::blockAccess()

Indicates whether the block should be shown.

Blocks with specific access checking should override this method rather than access(), in order to avoid repeating the handling of the $return_as_object argument.

Parameters

\Drupal\Core\Session\AccountInterface $account: The user session for which to check access.

Return value

\Drupal\Core\Access\AccessResult The access result.

Overrides BlockPluginTrait::blockAccess

See also

self::access()

File

core/modules/user/src/Plugin/Block/UserLoginBlock.php, line 73

Class

UserLoginBlock
Provides a 'User login' block.

Namespace

Drupal\user\Plugin\Block

Code

protected function blockAccess(AccountInterface $account) {
  $route_name = $this->routeMatch
    ->getRouteName();
  if ($account
    ->isAnonymous() && !in_array($route_name, [
    'user.login',
    'user.logout',
  ])) {
    return AccessResult::allowed()
      ->addCacheContexts([
      'route.name',
      'user.roles:anonymous',
    ]);
  }
  return AccessResult::forbidden();
}