=== modified file 'modules/blog/blog.module'
--- modules/blog/blog.module	2006-10-30 11:21:33 +0000
+++ modules/blog/blog.module	2006-11-06 19:32:31 +0000
@@ -29,15 +29,13 @@ function blog_perm() {
 /**
  * Implementation of hook_access().
  */
-function blog_access($op, $node) {
-  global $user;
-
+function blog_access($op, $node, $account) {
   if ($op == 'create') {
-    return user_access('edit own blog') && $user->uid;
+    return user_access('edit own blog', $account) && $account->uid;
   }
 
   if ($op == 'update' || $op == 'delete') {
-    if (user_access('edit own blog') && ($user->uid == $node->uid)) {
+    if (user_access('edit own blog', $account) && ($node->uid == $account->uid)) {
       return TRUE;
     }
   }

=== modified file 'modules/book/book.module'
--- modules/book/book.module	2006-10-22 08:28:44 +0000
+++ modules/book/book.module	2006-11-06 19:30:33 +0000
@@ -29,13 +29,11 @@ function book_perm() {
 /**
  * Implementation of hook_access().
  */
-function book_access($op, $node) {
-  global $user;
-
+function book_access($op, $node, $account) {
   if ($op == 'create') {
     // Only registered users can create book pages. Given the nature
     // of the book module this is considered to be a good/safe idea.
-    return user_access('create book pages');
+    return user_access('create book pages', $account);
   }
 
   if ($op == 'update') {
@@ -45,12 +43,10 @@ function book_access($op, $node) {
     // of that page waiting for approval. That is, only updates that
     // don't overwrite the current or pending information are allowed.
 
-    if (user_access('edit book pages') || ($node->uid == $user->uid && user_access('edit own book pages'))) {
+    if (user_access('edit book pages') || ($node->uid == $account->uid && user_access('edit own book pages', $account))) {
       return TRUE;
     }
-    else {
-       // do nothing. node-access() will determine further access
-    }
+    // else do nothing. node-access() will determine further access
   }
 }
 

=== modified file 'modules/forum/forum.module'
--- modules/forum/forum.module	2006-10-22 08:28:44 +0000
+++ modules/forum/forum.module	2006-11-06 19:31:46 +0000
@@ -124,15 +124,13 @@ function forum_node_info() {
 /**
  * Implementation of hook_access().
  */
-function forum_access($op, $node) {
-  global $user;
-
+function forum_access($op, $node, $account) {
   if ($op == 'create') {
-    return user_access('create forum topics');
+    return user_access('create forum topics', $account);
   }
 
   if ($op == 'update' || $op == 'delete') {
-    if (user_access('edit own forum topics') && ($user->uid == $node->uid)) {
+    if (user_access('edit own forum topics', $account) && ($account->uid == $node->uid)) {
       return TRUE;
     }
   }

=== modified file 'modules/node/node.module'
--- modules/node/node.module	2006-10-31 17:01:04 +0000
+++ modules/node/node.module	2006-11-06 19:34:59 +0000
@@ -2579,16 +2579,17 @@ function node_access($op, $node = NULL, 
   if ($op != 'create') {
     $node = (object)$node;
   }
+  $account = isset($uid) ? user_load(array('uid' => $uid)) : $GLOBALS['user'];
   // If the node is in a restricted format, disallow editing.
   if ($op == 'update' && !filter_access($node->format)) {
     return FALSE;
   }
 
-  if (user_access('administer nodes')) {
+  if (user_access('administer nodes', $account)) {
     return TRUE;
   }
 
-  if (!user_access('access content')) {
+  if (!user_access('access content', $account)) {
     return FALSE;
   }
 
@@ -2598,7 +2599,7 @@ function node_access($op, $node = NULL, 
   if ($module == 'node') {
     $module = 'node_content'; // Avoid function name collisions.
   }
-  $access = module_invoke($module, 'access', $op, $node);
+  $access = module_invoke($module, 'access', $op, $node, $account);
   if (!is_null($access)) {
     return $access;
   }
@@ -2870,16 +2871,15 @@ function node_access_rebuild() {
 /**
  * Implementation of hook_access().
  */
-function node_content_access($op, $node) {
-  global $user;
+function node_content_access($op, $node, $account) {
   $type = is_string($node) ? $node : (is_array($node) ? $node['type'] : $node->type);
 
   if ($op == 'create') {
-    return user_access('create '. $type .' content');
+    return user_access('create '. $type .' content', $account);
   }
 
   if ($op == 'update' || $op == 'delete') {
-    if (user_access('edit '. $type .' content') || (user_access('edit own '. $type .' content') && ($user->uid == $node->uid))) {
+    if (user_access('edit '. $type .' content', $account) || (user_access('edit own '. $type .' content', $account) && ($account->uid == $node->uid))) {
       return TRUE;
     }
   }

=== modified file 'modules/poll/poll.module'
--- modules/poll/poll.module	2006-10-22 08:28:44 +0000
+++ modules/poll/poll.module	2006-11-06 19:34:20 +0000
@@ -29,9 +29,9 @@ function poll_help($section) {
 /**
  * Implementation of hook_access().
  */
-function poll_access($op, $node) {
+function poll_access($op, $node, $account) {
   if ($op == 'create') {
-    return user_access('create polls');
+    return user_access('create polls', $account);
   }
 }
 

