My approach did not involve just the node_access table, it used the og table&nbsp; (to determine if the user is an admin of the group). Just get rid of the og stuff and put in your node_uid table<br><br>So revised using node_uid table like as follows
<br><br>hook__node_access_records()<br>&nbsp;
// add the admin access row<br>&nbsp;$grants[] = array(<br>&nbsp;&nbsp; &#39;realm&#39; =&gt; &#39;node_author&#39;,<br>&nbsp;&nbsp;
&#39;gid&#39; =&gt; $node_uid_record-&gt;nid,<br>&nbsp;&nbsp;
&#39;grant_view&#39; =&gt; 1,<br>&nbsp;&nbsp;
&#39;grant_update&#39; =&gt; 1,<br>&nbsp;&nbsp;
&#39;grant_delete&#39; =&gt; 1<br>&nbsp;);<br>&nbsp;return $grants;<i><br><br></i>
hook_node_grants()<br>
foreach ($node_uid_records as $node_uid_record) {<br>&nbsp;&nbsp; $grants[&#39;node_author&#39;] [] = $node_uid_record-&gt;nid<br>
}<br>
return $grants<br><br clear="all"><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">I have done the same in the ejournal module, but what is not possible
<br>with this approach is to track ownership or assign rights to<br>individual users (as opposed to groups). Think of it in this way:<br>access rights may be rebuild by other modules, if you do not keep<br>track of  node-authors relationships, you are not able to recreate the
<br>rights using information from node_access table only (using drupal<br>hooks) because access rights are deleted before being refreshed.<br>The proposed approach of node_uid table would solve this and many<br>other related problems.
<br><br>I am struggling with the multiple authorship issue since the very<br>beginning, ie. D4.6, there are potentially a lot of modules who would<br>benefit from this functionality. I am sorry, that it is probably too<br>
late for D6.<br><br>  roman<br></blockquote><pre><br></pre><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">On Jan 13, 2008 6:32 PM, Scott Reynolds &lt;
<a href="http://lists.drupal.org/listinfo/development">sdrreynolds at gmail.com</a>&gt; wrote:<br>&gt;<i> Heres how I have allowed multiple users to be able to edit one node. Custom</i><br>&gt;<i> node_access module</i><br>
&gt;<br>&gt;<i>  hook__node_access_records()</i><br>&gt;<i>   // add the admin access row</i><br>&gt;<i>      $grants[] = array(</i><br>&gt;<i>        &#39;realm&#39; =&gt; &#39;og_admin&#39;,</i><br>&gt;<i>        &#39;gid&#39; =&gt; $node-&gt;group,
</i><br>&gt;<i>        &#39;grant_view&#39; =&gt; 1,</i><br>&gt;<i>        &#39;grant_update&#39; =&gt; 1,</i><br>&gt;<i>        &#39;grant_delete&#39; =&gt; 1</i><br>&gt;<i>      );</i><br>&gt;<i>      return $grants;</i>
<br>&gt;<br>&gt;<i>  then..</i><br>&gt;<i>  hook_node_grants()</i><br>&gt;<i>  foreach ($account-&gt;og_groups as $group) {</i><br>&gt;<i>        if ($group[&#39;is_admin&#39;] == 1) {</i><br>&gt;<i>          // grant this user admin priv over all nodes in group
</i><br>&gt;<i>          $grants[&#39;og_admin&#39;][] = $group[&#39;nid&#39;];</i><br>&gt;<i>        }</i><br>&gt;<i>  }</i><br>&gt;<i>  return $grants</i><br>&gt;<br>&gt;<i>  Then hook_enable()</i><br>&gt;<i>    node_access_rebuild();
</i><br>&gt;<br>&gt;<i>  Its simple and it works. I may have some typos in there but thats the basic</i><br>&gt;<i> idea. Same trick can be applied to roles. So you can have editor roles that</i><br>&gt;<i> can change any node on the site.
</i><br>&gt;<i>  --</i><br>&gt;<i> Scott Reynolds</i><br>&gt;<i> Senior Developer and Engineer</i><br>&gt;<i> MothersClick</i><br>&gt;<i> <a href="http://lists.drupal.org/listinfo/development">scott at mothersclick.com</a>
</i><br>&gt;</blockquote><pre></pre><br>-- <br>Scott Reynolds<br>Cell: 630-254-2474<br><a href="http://www.scottreynolds.us">http://www.scottreynolds.us</a>