diff --git a/core/modules/book/book.module b/core/modules/book/book.module
index ac26714..fd64ba2 100644
--- a/core/modules/book/book.module
+++ b/core/modules/book/book.module
@@ -126,7 +126,8 @@ function book_node_view_link(EntityInterface $node, $view_mode) {
   if (isset($node->book['depth'])) {
     if ($view_mode == 'full' && node_is_page($node)) {
       $child_type = Drupal::config('book.settings')->get('child_type');
-      if ((user_access('add content to books') || user_access('administer book outlines')) && node_access('create', $child_type) && $node->status == 1 && $node->book['depth'] < MENU_MAX_DEPTH) {
+      $access_controller = Drupal::entityManager()->getAccessController('node');
+      if ((user_access('add content to books') || user_access('administer book outlines')) && $access_controller->createAccess($child_type) && $node->status == 1 && $node->book['depth'] < MENU_MAX_DEPTH) {
         $links['book_add_child'] = array(
           'title' => t('Add child page'),
           'href' => 'node/add/' . $child_type,
@@ -224,7 +225,7 @@ function book_menu() {
  *   The node whose export page is to be viewed.
  */
 function book_export_access(EntityInterface $node) {
-  return user_access('access printer-friendly version') && node_access('view', $node);
+  return user_access('access printer-friendly version') && $node->access('view');
 }
 
 /**
@@ -240,7 +241,7 @@ function book_export_access(EntityInterface $node) {
  * @see book_menu()
  */
 function _book_outline_access(EntityInterface $node) {
-  return user_access('administer book outlines') && node_access('view', $node);
+  return user_access('administer book outlines') && $node->access('view');
 }
 
 /**
diff --git a/core/modules/book/lib/Drupal/book/Plugin/Block/BookNavigationBlock.php b/core/modules/book/lib/Drupal/book/Plugin/Block/BookNavigationBlock.php
index 8cacc04..ef04a43 100644
--- a/core/modules/book/lib/Drupal/book/Plugin/Block/BookNavigationBlock.php
+++ b/core/modules/book/lib/Drupal/book/Plugin/Block/BookNavigationBlock.php
@@ -81,7 +81,7 @@ public function build() {
           $book['in_active_trail'] = FALSE;
           // Check whether user can access the book link.
           $book_node = node_load($book['nid']);
-          $book['access'] = node_access('view', $book_node);
+          $book['access'] = $book_node->access('view');
           $pseudo_tree[0]['link'] = $book;
           $book_menus[$book_id] = menu_tree_output($pseudo_tree);
         }
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index a68f39b..467f552 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -1774,7 +1774,7 @@ function comment_file_download_access($field, EntityInterface $entity, File $fil
   if ($entity->entityType() == 'comment') {
     if (user_access('access comments') && $entity->status->value == COMMENT_PUBLISHED || user_access('administer comments')) {
       $node = $entity->nid->entity;
-      return node_access('view', $node);
+      return $node->access('view');
     }
     return FALSE;
   }
diff --git a/core/modules/file/file.api.php b/core/modules/file/file.api.php
index c713214..a682376 100644
--- a/core/modules/file/file.api.php
+++ b/core/modules/file/file.api.php
@@ -220,7 +220,7 @@ function hook_file_delete(Drupal\file\FileInterface $file) {
  */
 function hook_file_download_access($field, Drupal\Core\Entity\EntityInterface $entity, Drupal\file\FileInterface $file) {
   if ($entity->entityType() == 'node') {
-    return node_access('view', $entity);
+    return $entity->access('view');
   }
 }
 
diff --git a/core/modules/forum/forum.module b/core/modules/forum/forum.module
index 46921af..6ef352b 100644
--- a/core/modules/forum/forum.module
+++ b/core/modules/forum/forum.module
@@ -172,8 +172,9 @@ function forum_menu_local_tasks(&$data, $router_item, $root_path) {
       $links = array();
       // Loop through all bundles for forum taxonomy vocabulary field.
       $field = field_info_field('taxonomy_forums');
+      $access_controller = Drupal::entityManager()->getAccessController('node');
       foreach ($field['bundles']['node'] as $type_name) {
-        if (($type = entity_load('node_type', $type_name)) && node_access('create', $type_name)) {
+        if (($type = entity_load('node_type', $type_name)) && $access_controller->createAccess($type->id())) {
           $links[$type_name] = array(
             '#theme' => 'menu_local_action',
             '#link' => array(
diff --git a/core/modules/node/lib/Drupal/node/NodeFormController.php b/core/modules/node/lib/Drupal/node/NodeFormController.php
index ccc1dcc..a061654 100644
--- a/core/modules/node/lib/Drupal/node/NodeFormController.php
+++ b/core/modules/node/lib/Drupal/node/NodeFormController.php
@@ -303,7 +303,7 @@ protected function actions(array $form, array &$form_state) {
     }
 
     $element['preview'] = array(
-      '#access' => $preview_mode != DRUPAL_DISABLED && (node_access('create', $node) || node_access('update', $node)),
+      '#access' => $preview_mode != DRUPAL_DISABLED && ($node->access('create') || $node->access('update')),
       '#value' => t('Preview'),
       '#weight' => 20,
       '#validate' => array(
@@ -315,7 +315,7 @@ protected function actions(array $form, array &$form_state) {
       ),
     );
 
-    $element['delete']['#access'] = node_access('delete', $node);
+    $element['delete']['#access'] = $node->access('delete');
     $element['delete']['#weight'] = 100;
 
     return $element;
@@ -452,7 +452,7 @@ public function save(array $form, array &$form_state) {
     if ($node->id()) {
       $form_state['values']['nid'] = $node->id();
       $form_state['nid'] = $node->id();
-      $form_state['redirect'] = node_access('view', $node) ? 'node/' . $node->id() : '<front>';
+      $form_state['redirect'] = $node->access('view') ? 'node/' . $node->id() : '<front>';
     }
     else {
       // In the unlikely case something went wrong on save, the node will be
diff --git a/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/Node.php b/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/Node.php
index 54ae77f..81e6c41 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/Node.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/Node.php
@@ -11,6 +11,8 @@
 use Drupal\Core\Entity\EntityStorageControllerInterface;
 use Drupal\Core\Entity\Annotation\EntityType;
 use Drupal\Core\Annotation\Translation;
+use Drupal\Core\Language\Language;
+use Drupal\Core\Session\AccountInterface;
 use Drupal\node\NodeInterface;
 use Drupal\node\NodeBCDecorator;
 
@@ -274,4 +276,30 @@ public function setRevisionAuthorId($uid) {
     return $this;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function access($operation = 'view', AccountInterface $account = NULL, $langcode = NULL) {
+    $access_controller = \Drupal::entityManager()->getAccessController($this->entityType);
+    if ($operation == 'create') {
+      return $access_controller->createAccess($this->bundle(), $account);
+    }
+    if (empty($langcode)) {
+      $langcode = $this->language()->id;
+      // If the Language module is enabled, try to use the language from content
+      // negotiation.
+      if (\Drupal::moduleHandler()->moduleExists('language')) {
+        // Load languages the node exists in.
+        $node_translations = $this->getTranslationLanguages();
+        // Load the language from content negotiation.
+        $content_negotiation_langcode = \Drupal::languageManager()->getLanguage(Language::TYPE_CONTENT)->id;
+        // If there is a translation available, use it.
+        if (isset($node_translations[$content_negotiation_langcode])) {
+          $langcode = $content_negotiation_langcode;
+        }
+      }
+    }
+    return $access_controller->access($this, $operation, $langcode, $account);
+  }
+
 }
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/argument_validator/Node.php b/core/modules/node/lib/Drupal/node/Plugin/views/argument_validator/Node.php
index 36f3ab0..11abd27 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/argument_validator/Node.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/argument_validator/Node.php
@@ -94,7 +94,7 @@ public function validateArgument($argument) {
         }
 
         if (!empty($this->options['access'])) {
-          if (!node_access($this->options['access_op'], $node)) {
+          if (!$node->access($this->options['access_op'])) {
             return FALSE;
           }
         }
@@ -126,7 +126,7 @@ public function validateArgument($argument) {
           }
 
           if (!empty($this->options['access'])) {
-            if (!node_access($this->options['access_op'], $node)) {
+            if (!$node->access($this->options['access_op'])) {
               return FALSE;
             }
           }
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/field/Link.php b/core/modules/node/lib/Drupal/node/Plugin/views/field/Link.php
index a4715a8..d537c50 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/field/Link.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/field/Link.php
@@ -56,7 +56,7 @@ public function render(ResultRow $values) {
   }
 
   protected function renderLink($node, ResultRow $values) {
-    if (node_access('view', $node)) {
+    if ($node->access('view')) {
       $this->options['alter']['make_link'] = TRUE;
       $this->options['alter']['path'] = 'node/' . $node->id();
       $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/field/LinkDelete.php b/core/modules/node/lib/Drupal/node/Plugin/views/field/LinkDelete.php
index 4a60a4b..c92c97b 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/field/LinkDelete.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/field/LinkDelete.php
@@ -25,7 +25,7 @@ class LinkDelete extends Link {
    */
   protected function renderLink($node, ResultRow $values) {
     // Ensure user has access to delete this node.
-    if (!node_access('delete', $node)) {
+    if (!$node->access('delete')) {
       return;
     }
 
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/field/LinkEdit.php b/core/modules/node/lib/Drupal/node/Plugin/views/field/LinkEdit.php
index 63c07fb..68300b0 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/field/LinkEdit.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/field/LinkEdit.php
@@ -25,7 +25,7 @@ class LinkEdit extends Link {
    */
   protected function renderLink($node, ResultRow $values) {
     // Ensure user has access to edit this node.
-    if (!node_access('update', $node)) {
+    if (!$node->access('update')) {
       return;
     }
 
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLink.php b/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLink.php
index 6b43b81..0365faa 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLink.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLink.php
@@ -72,7 +72,7 @@ function get_revision_entity($values, $op) {
     // Unpublished nodes ignore access control.
     $node->status = 1;
     // Ensure user has access to perform the operation on this node.
-    if (!node_access($op, $node)) {
+    if (!$node->access($op)) {
       return array($node, NULL);
     }
     return array($node, $vid);
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareTest.php
index 9344ec5..48824ab 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageAwareTest.php
@@ -123,7 +123,7 @@ public function setUp() {
   }
 
   /**
-   * Tests node_access() and node access queries with multiple node languages.
+   * Tests node access and node access queries with multiple node languages.
    */
   function testNodeAccessLanguageAware() {
     // The node_access_test_language module only grants view access.
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php
index 54ba085..2c60b57 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Language\Language;
 
 /**
- * Verifies node_access() functionality for multiple languages.
+ * Verifies node access functionality for multiple languages.
  */
 class NodeAccessLanguageTest extends NodeTestBase {
 
@@ -50,7 +50,7 @@ function setUp() {
   }
 
   /**
-   * Tests node_access() with multiple node languages and no private nodes.
+   * Tests node access with multiple node languages and no private nodes.
    */
   function testNodeAccess() {
     $web_user = $this->drupalCreateUser(array('access content'));
@@ -92,7 +92,7 @@ function testNodeAccess() {
     $this->assertNodeAccess($expected_node_access_no_access, $node_public_no_language, $web_user, 'ca');
     $this->assertNodeAccess($expected_node_access_no_access, $node_public_no_language, $web_user, 'hr');
 
-    // Reset the node access cache and turn on our test node_access() code.
+    // Reset the node access cache and turn on our test node access code.
     drupal_static_reset('node_access');
     variable_set('node_access_test_secret_catalan', 1);
 
@@ -107,7 +107,7 @@ function testNodeAccess() {
   }
 
   /**
-   * Tests node_access() with multiple node languages and private nodes.
+   * Tests node access with multiple node languages and private nodes.
    */
   function testNodeAccessPrivate() {
     $web_user = $this->drupalCreateUser(array('access content'));
@@ -151,7 +151,7 @@ function testNodeAccessPrivate() {
     $this->assertNodeAccess($expected_node_access_no_access, $node_private_no_language, $web_user, 'ca');
     $this->assertNodeAccess($expected_node_access_no_access, $node_private_no_language, $web_user, 'hr');
 
-    // Reset the node access cache and turn on our test node_access() code.
+    // Reset the node access cache and turn on our test node access code.
     entity_access_controller('node')->resetCache();
     \Drupal::state()->set('node_access_test_secret_catalan', 1);
 
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeAccessTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeAccessTest.php
index 66448d0..440ad5b 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeAccessTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeAccessTest.php
@@ -36,13 +36,13 @@ function testNodeAccess() {
     // Ensures user without 'access content' permission can do nothing.
     $web_user1 = $this->drupalCreateUser(array('create page content', 'edit any page content', 'delete any page content'));
     $node1 = $this->drupalCreateNode(array('type' => 'page'));
-    $this->assertNodeAccess(array('create' => FALSE), 'page', $web_user1);
+    $this->assertNodeAccess(array('create' => FALSE), $node1, $web_user1);
     $this->assertNodeAccess(array('view' => FALSE, 'update' => FALSE, 'delete' => FALSE), $node1, $web_user1);
 
     // Ensures user with 'bypass node access' permission can do everything.
     $web_user2 = $this->drupalCreateUser(array('bypass node access'));
     $node2 = $this->drupalCreateNode(array('type' => 'page'));
-    $this->assertNodeAccess(array('create' => TRUE), 'page', $web_user2);
+    $this->assertNodeAccess(array('create' => TRUE), $node2, $web_user2);
     $this->assertNodeAccess(array('view' => TRUE, 'update' => TRUE, 'delete' => TRUE), $node2, $web_user2);
 
     // User cannot 'view own unpublished content'.
@@ -51,7 +51,7 @@ function testNodeAccess() {
     $this->assertNodeAccess(array('view' => FALSE), $node3, $web_user3);
 
     // User cannot create content without permission.
-    $this->assertNodeAccess(array('create' => FALSE), 'page', $web_user3);
+    $this->assertNodeAccess(array('create' => FALSE), $node3, $web_user3);
 
     // User can 'view own unpublished content', but another user cannot.
     $web_user4 = $this->drupalCreateUser(array('access content', 'view own unpublished content'));
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeTestBase.php b/core/modules/node/lib/Drupal/node/Tests/NodeTestBase.php
index 93eb3dd..71f6884 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeTestBase.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeTestBase.php
@@ -51,14 +51,14 @@ function setUp() {
   function assertNodeAccess(array $ops, $node, AccountInterface $account, $langcode = NULL) {
     foreach ($ops as $op => $result) {
       $msg = format_string(
-        'node_access() returns @result with operation %op, language code %langcode.',
+        '$node->access() returns @result with operation %op, language code %langcode.',
         array(
           '@result' => $result ? 'true' : 'false',
           '%op' => $op,
           '%langcode' => !empty($langcode) ? $langcode : 'empty'
         )
       );
-      $this->assertEqual($result, node_access($op, $node, $account, $langcode), $msg);
+      $this->assertEqual($result, $node->access($op, $account, $langcode), $msg);
     }
   }
 
diff --git a/core/modules/node/node.admin.inc b/core/modules/node/node.admin.inc
index ded7789..8e60c4c 100644
--- a/core/modules/node/node.admin.inc
+++ b/core/modules/node/node.admin.inc
@@ -269,14 +269,14 @@ function node_admin_nodes() {
 
     // Build a list of all the accessible operations for the current node.
     $operations = array();
-    if (node_access('update', $node)) {
+    if ($node->access('update')) {
       $operations['edit'] = array(
         'title' => t('Edit'),
         'href' => 'node/' . $node->id() . '/edit',
         'query' => $destination,
       );
     }
-    if (node_access('delete', $node)) {
+    if ($node->access('delete')) {
       $operations['delete'] = array(
         'title' => t('Delete'),
         'href' => 'node/' . $node->id() . '/delete',
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 200c6f6..8b2e0d3 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1129,8 +1129,9 @@ function _node_revision_access(EntityInterface $node, $op = 'view', $account = N
  */
 function _node_add_access() {
   $types = node_type_get_types();
+  $access_controller = Drupal::entityManager()->getAccessController('node');
   foreach ($types as $type) {
-    if (node_access('create', $type->type)) {
+    if ($access_controller->createAccess($type->type)) {
       return TRUE;
     }
   }
@@ -1394,13 +1395,13 @@ function theme_node_recent_block($variables) {
       'data' => drupal_render($node_recent_content),
       'class' => 'title-author',
     );
-    if (node_access('update', $node)) {
+    if ($node->access('update')) {
       $row[] = array(
         'data' => l(t('edit'), 'node/' . $node->id() . '/edit', $l_options),
         'class' => 'edit',
       );
     }
-    if (node_access('delete', $node)) {
+    if ($node->access('delete')) {
       $row[] = array(
         'data' => l(t('delete'), 'node/' . $node->id() . '/delete', $l_options),
         'class' => 'delete',
@@ -2025,11 +2026,11 @@ function node_form_system_themes_admin_form_submit($form, &$form_state) {
  * @return
  *   TRUE if the operation may be performed, FALSE otherwise.
  *
+ * @deprecated Use \Drupal\node\NodeInterface::access().
+ *
  * @see node_menu()
  */
 function node_access($op, $node, $account = NULL, $langcode = NULL) {
-  $access_controller = Drupal::entityManager()->getAccessController('node');
-
   if ($op == 'create') {
     if (!$node instanceof EntityInterface) {
       $bundle = $node;
@@ -2040,26 +2041,11 @@ function node_access($op, $node, $account = NULL, $langcode = NULL) {
     else {
       $bundle = $node->bundle();
     }
-    return $access_controller->createAccess($bundle, $account, array('langcode' => $langcode));
-  }
-
-  // If no language code was provided, default to the node's langcode.
-  if (empty($langcode)) {
-    $langcode = $node->language()->id;
-    // If the Language module is enabled, try to use the language from content
-    // negotiation.
-    if (module_exists('language')) {
-      // Load languages the node exists in.
-      $node_translations = $node->getTranslationLanguages();
-      // Load the language from content negotiation.
-      $content_negotiation_langcode = language(Language::TYPE_CONTENT)->id;
-      // If there is a translation available, use it.
-      if (isset($node_translations[$content_negotiation_langcode])) {
-        $langcode = $content_negotiation_langcode;
-      }
-    }
+    return Drupal::entityManager()
+      ->getAccessController('node')
+      ->createAccess($bundle, $account, array('langcode' => $langcode));
   }
-  return $access_controller->access($node, $op, $langcode, $account);
+  return $node->access($op, $account, $langcode);
 }
 
 /**
@@ -2535,7 +2521,7 @@ function node_modules_disabled($modules) {
  */
 function node_file_download_access($field, EntityInterface $entity, File $file) {
   if ($entity->entityType() == 'node') {
-    return node_access('view', $entity);
+    return $entity->access('view');
   }
 }
 
diff --git a/core/modules/node/node.pages.inc b/core/modules/node/node.pages.inc
index 48ad45f..b6f5e1a 100644
--- a/core/modules/node/node.pages.inc
+++ b/core/modules/node/node.pages.inc
@@ -27,8 +27,9 @@
 function node_add_page() {
   $content = array();
   // Only use node types the user has access to.
+  $access_controller = Drupal::entityManager()->getAccessController('node');
   foreach (node_type_get_types() as $type) {
-    if (node_access('create', $type->type)) {
+    if ($access_controller->createAccess($type->type)) {
       $content[$type->type] = $type;
     }
   }
@@ -107,7 +108,7 @@ function node_add($node_type) {
  * @see node_form_build_preview()
  */
 function node_preview(EntityInterface $node) {
-  if (node_access('create', $node) || node_access('update', $node)) {
+  if ($node->access('create') || $node->access('update')) {
     // Load the user's name when needed.
     if (isset($node->name)) {
       // The use of isset() is mandatory in the context of user IDs, because
@@ -201,11 +202,11 @@ function node_revision_overview($node) {
   $type = $node->type;
 
   $revert_permission = FALSE;
-  if ((user_access("revert $type revisions") || user_access('revert all revisions') || user_access('administer nodes')) && node_access('update', $node)) {
+  if ((user_access("revert $type revisions") || user_access('revert all revisions') || user_access('administer nodes')) && $node->access('update')) {
     $revert_permission = TRUE;
   }
   $delete_permission = FALSE;
-  if ((user_access("delete $type revisions") || user_access('delete all revisions') || user_access('administer nodes')) && node_access('delete', $node)) {
+  if ((user_access("delete $type revisions") || user_access('delete all revisions') || user_access('administer nodes')) && $node->access('delete')) {
     $delete_permission = TRUE;
   }
   foreach ($revisions as $revision) {
diff --git a/core/modules/translation/translation.module b/core/modules/translation/translation.module
index 5846ca2..ec4203c 100644
--- a/core/modules/translation/translation.module
+++ b/core/modules/translation/translation.module
@@ -88,7 +88,7 @@ function translation_menu() {
  * @see translation_menu()
  */
 function _translation_tab_access($node) {
-  if ($node->langcode != Language::LANGCODE_NOT_SPECIFIED && translation_supported_type($node->type) && node_access('view', $node)) {
+  if ($node->langcode != Language::LANGCODE_NOT_SPECIFIED && translation_supported_type($node->type) && $node->access('view')) {
     return translation_user_can_translate_node($node);
   }
   return FALSE;
@@ -154,7 +154,7 @@ function translation_user_can_translate_node($node, $account = NULL) {
   if (empty($account)) {
     $account = $GLOBALS['user'];
   }
-  return node_access('view', $node, $account) && (user_access('translate all content', $account) || ($node->uid == $account->id() && user_access('translate own content', $account)));
+  return $node->access('view', $account) && (user_access('translate all content', $account) || ($node->uid == $account->id() && user_access('translate own content', $account)));
 }
 
 /**
diff --git a/core/modules/translation/translation.pages.inc b/core/modules/translation/translation.pages.inc
index 62d2ada..077b1cf 100644
--- a/core/modules/translation/translation.pages.inc
+++ b/core/modules/translation/translation.pages.inc
@@ -46,7 +46,7 @@ function translation_node_overview(EntityInterface $node) {
       $path = 'node/' . $translation_node->id();
       $links = language_negotiation_get_switch_links($type, $path);
       $title = empty($links->links[$langcode]['href']) ? l($translation_node->label(), $path) : l($translation_node->label(), $links->links[$langcode]['href'], $links->links[$langcode]);
-      if (node_access('update', $translation_node)) {
+      if ($translation_node->access('update')) {
         $path = 'node/' . $translation_node->id() . '/edit';
         $links = language_negotiation_get_switch_links($type, $path);
         if (!empty($links->links[$langcode]['href'])) {
@@ -64,7 +64,7 @@ function translation_node_overview(EntityInterface $node) {
     else {
       // No such translation in the set yet: help user to create it.
       $title = t('n/a');
-      if (node_access('create', $node)) {
+      if ($node->access('create')) {
         $path = 'node/add/' . $node->type;
         $links = language_negotiation_get_switch_links($type, $path);
         $query = array('query' => array('translation' => $node->id(), 'target' => $langcode));
