You are here

protected function SocialGroupTagsBlock::blockAccess in Open Social 8.5

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()
  2. 8.4 modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()
  3. 8.6 modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()
  4. 8.7 modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()
  5. 8.8 modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()
  6. 10.3.x modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()
  7. 10.0.x modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()
  8. 10.1.x modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()
  9. 10.2.x modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php \Drupal\social_tagging\Plugin\Block\SocialGroupTagsBlock::blockAccess()

Logic to display the block in the sidebar.

Overrides BlockPluginTrait::blockAccess

File

modules/social_features/social_tagging/src/Plugin/Block/SocialGroupTagsBlock.php, line 78

Class

SocialGroupTagsBlock
Provides a 'SocialGroupTags' block.

Namespace

Drupal\social_tagging\Plugin\Block

Code

protected function blockAccess(AccountInterface $account) {

  // If tagging is off, deny access always.
  if (!$this->tagService
    ->active() || !$this->tagService
    ->groupActive()) {
    return AccessResult::forbidden();
  }

  // Routes we don't want to display the tag block on.
  $ignore_routes = [
    'entity.group.join',
    'entity.group.leave',
    'entity.group.edit_form',
    'entity.group.delete_form',
    'entity.group_content.collection',
    'view.group_manage_members.page_group_manage_members',
  ];

  // Don't display on group edit.
  if (in_array($this->routeMatch
    ->getRouteName(), $ignore_routes)) {
    return AccessResult::forbidden();
  }

  // Get group from route.
  $group = $this->routeMatch
    ->getParameter('group');
  if ($group instanceof Group) {
    if ($group
      ->hasField('social_tagging')) {
      if (!empty($group
        ->get('social_tagging')
        ->getValue())) {

        // We only show the block if the field contains values.
        return AccessResult::allowed();
      }
    }
  }
  return AccessResult::forbidden();
}