If a block has been configured to show up in only show up on certain admin content pages then it will not show up on the admin Block Layout page after the settings have been made.
Reason:
node_block_access is called by \Drupal\Core\Entity\EntityListController::getOperations() when it calls $entity->access('update');
The function is defined function node_block_access($block)
But the hook is also called with an operation argument.
It is invoked in \Drupal\Core\Entity\EntityAccessController::access()$this->moduleHandler->invokeAll($entity->entityType() . '_access', array($entity, $operation, $account, $langcode))
It seems that the purpose of node_block_access is only affect access when $operation == 'view'.
I will attach a patch that fixes this by checking for $operation == 'view'
Steps to test
- Install Drupal
- Disable overlay module(overlay seems to cause other problems related to blocks layout page that I am looking into)
- Goto admin/structure/block
- Click configure next to "footer" block.(affects all blocks)
- Under "Visibility settings->content types" select article
- Save the settings
- The configure link for the "footer" should be gone.
Apply the patch. Repeat the steps and the configure link should not disappear.