function UserLoginBlock::blockAccess

Same name and namespace in other branches
  1. 9 core/modules/user/src/Plugin/Block/UserLoginBlock.php \Drupal\user\Plugin\Block\UserLoginBlock::blockAccess()
  2. 8.9.x core/modules/user/src/Plugin/Block/UserLoginBlock.php \Drupal\user\Plugin\Block\UserLoginBlock::blockAccess()
  3. 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\AccessResultInterface The access result.

Overrides BlockPluginTrait::blockAccess

File

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

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();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.