web-dev-qa-db-ja.com

ルート名を使用して特定のページのブロックへのアクセスを制限することは可能ですか?

ブロックへのアクセスをroute:entity.user.canonicalルートでのみアクセスできるように制限しようとしています。

それをブロック編集フォームで定義することは可能ですか?

2
voleger

UIはありませんが、独自の条件プラグインを作成してそれを行うか、次のようにhook_block_access()を実装できます。

function yourmodule_user_block_access(BlockInterface $block, $operation, AccountInterface $account) {

  $hidden_blocks = ['yourtheme_block_id'];
  $hidden_routes = ['entity.user.canonical'];

  if ($operation == 'view' && in_array($block->id(), $hidden_blocks) && in_array(\Drupal::routeMatch()->getRouteName(), $hidden_routes)) {
    return AccessResult::forbidden();
  }
}
4
Berdir