diff --git a/core/modules/node/src/NodeTypeAccessControlHandler.php b/core/modules/node/src/NodeTypeAccessControlHandler.php
index 067727d..0c0da19 100644
--- a/core/modules/node/src/NodeTypeAccessControlHandler.php
+++ b/core/modules/node/src/NodeTypeAccessControlHandler.php
@@ -23,15 +23,41 @@ class NodeTypeAccessControlHandler extends EntityAccessControlHandler {
    * {@inheritdoc}
    */
   protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account) {
-    if ($operation == 'delete') {
-      if ($entity->isLocked()) {
-        return AccessResult::forbidden()->cacheUntilEntityChanges($entity);
-      }
-      else {
-        return parent::checkAccess($entity, $operation, $langcode, $account)->cacheUntilEntityChanges($entity);
-      }
+    switch ($operation) {
+      case 'view':
+        return AccessResult::allowed();
+        break;
+
+      case 'delete':
+        if ($entity->isLocked()) {
+          return AccessResult::forbidden()->cacheUntilEntityChanges($entity);
+        }
+        else {
+          return parent::checkAccess($entity, $operation, $langcode, $account)->cacheUntilEntityChanges($entity);
+        }
+        break;
+
+      default:
+        return parent::checkAccess($entity, $operation, $langcode, $account);
+        break;
     }
-    return parent::checkAccess($entity, $operation, $langcode, $account);
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function access(EntityInterface $entity, $operation, $langcode = LanguageInterface::LANGCODE_DEFAULT, AccountInterface $account = NULL, $return_as_object = FALSE) {
+    $account = $this->prepareUser($account);
+
+    if ($account->hasPermission('bypass node access')) {
+      $result = AccessResult::allowed()->cachePerPermissions();
+      return $return_as_object ? $result : $result->isAllowed();
+    }
+    if (!$account->hasPermission('access content')) {
+      $result = AccessResult::forbidden()->cachePerPermissions();
+      return $return_as_object ? $result : $result->isAllowed();
+    }
+    $result = parent::access($entity, $operation, $langcode, $account, TRUE)->cachePerPermissions();
+    return $return_as_object ? $result : $result->isAllowed();
+  }
 }
