diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index a860f3f..d93c6a8 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1640,20 +1640,16 @@ function node_permissions_get_configured_types() {
  *
  * @param $op
  *   The operation that the user is trying to perform.
- * @param $account
- *   (optional) The user object for the user performing the operation. If
- *   omitted, the current user is used.  Defaults to NULL.
+ * @param \Drupal\Core\Session\AccountInterface $account
+ *   The user object for the user performing the operation.
  *
  * @return
  *   An associative array in which the keys are realms, and the values are
  *   arrays of grants for those realms.
  */
-function node_access_grants($op, $account = NULL) {
-
-  if (!isset($account)) {
-    $account = $GLOBALS['user'];
-  }
-
+function node_access_grants($op, AccountInterface $account) {
+  // Ensure that we pass a loaded user entity to hook implementations.
+  $account = entity_load('user', $account->id());
   // Fetch node access grants from other modules.
   $grants = \Drupal::moduleHandler()->invokeAll('node_grants', array($account, $op));
   // Allow modules to alter the assigned grants.
