From 1f49e53ad2b7a1cd9382a146dfa68691459d8adb Mon Sep 17 00:00:00 2001
From: "sergiu.savva" <sergiu.savva@gmail.com>
Date: Thu, 31 Jan 2013 14:22:24 +0200
Subject: [PATCH] Issue #1780646 by sergiu.savva: Fixed entity node access
 callback entity_metadata_no_hook_node_access().

---
 modules/callbacks.inc |   23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/modules/callbacks.inc b/modules/callbacks.inc
index dca9e1d..f1d7ca0 100644
--- a/modules/callbacks.inc
+++ b/modules/callbacks.inc
@@ -611,21 +611,16 @@ function entity_metadata_field_file_validate_item($items, $context) {
  */
 function entity_metadata_no_hook_node_access($op, $node = NULL, $account = NULL) {
   if (isset($node)) {
-    // If a non-default revision is given, incorporate revision access.
-    $default_revision = node_load($node->nid);
-    if ($node->vid != $default_revision->vid) {
-      return _node_revision_access($node, $op);
-    }
-    else {
-      return node_access($op, $node, $account);
+    // Check if node exist.
+    if (isset($node->nid)) {
+      // If a non-default revision is given, incorporate revision access.
+      $default_revision = node_load($node->nid);
+      if ($node->vid != $default_revision->vid) {
+        return _node_revision_access($node, $op);
+      }
     }
-  }
-  // Is access to all nodes allowed?
-  if (!user_access('access content', $account)) {
-    return FALSE;
-  }
-  if (user_access('bypass node access', $account) || (!isset($account) && $op == 'view' && node_access_view_all_nodes())) {
-    return TRUE;
+    // Otherwise, use the standard node access.
+    return node_access($op, $node, $account);
   }
   return FALSE;
 }
-- 
1.7.10.4

