You are here

protected function MasqueradeBlock::blockAccess in Masquerade 8.2

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

src/Plugin/Block/MasqueradeBlock.php, line 77

Class

MasqueradeBlock
Provides a 'Masquerade' block.

Namespace

Drupal\masquerade\Plugin\Block

Code

protected function blockAccess(AccountInterface $account) {
  if ($account
    ->isAnonymous()) {

    // Do not allow masquerade as anonymous user, use private browsing.
    return AccessResult::forbidden();
  }
  if ($this->masquerade
    ->isMasquerading()) {
    return AccessResult::forbidden()
      ->addCacheContexts([
      'session.is_masquerading',
    ]);
  }

  // Display block for all users that has any of masquerade permissions.
  return AccessResult::allowedIfHasPermissions($account, $this->masquerade
    ->getPermissions(), 'OR')
    ->addCacheContexts([
    'session.is_masquerading',
  ]);
}