Re: [development] Multiple user aliases - Multiple user node, ownership
Heres how I have allowed multiple users to be able to edit one node. Custom node_access module hook__node_access_records() // add the admin access row $grants[] = array( 'realm' => 'og_admin', 'gid' => $node->group, 'grant_view' => 1, 'grant_update' => 1, 'grant_delete' => 1 ); return $grants; then.. hook_node_grants() foreach ($account->og_groups as $group) { if ($group['is_admin'] == 1) { // grant this user admin priv over all nodes in group $grants['og_admin'][] = $group['nid']; } } return $grants Then hook_enable() node_access_rebuild(); Its simple and it works. I may have some typos in there but thats the basic idea. Same trick can be applied to roles. So you can have editor roles that can change any node on the site. -- Scott Reynolds Senior Developer and Engineer MothersClick scott@mothersclick.com
I have done the same in the ejournal module, but what is not possible with this approach is to track ownership or assign rights to individual users (as opposed to groups). Think of it in this way: access rights may be rebuild by other modules, if you do not keep track of node-authors relationships, you are not able to recreate the rights using information from node_access table only (using drupal hooks) because access rights are deleted before being refreshed. The proposed approach of node_uid table would solve this and many other related problems. I am struggling with the multiple authorship issue since the very beginning, ie. D4.6, there are potentially a lot of modules who would benefit from this functionality. I am sorry, that it is probably too late for D6. roman On Jan 13, 2008 6:32 PM, Scott Reynolds <sdrreynolds@gmail.com> wrote:
Heres how I have allowed multiple users to be able to edit one node. Custom node_access module
hook__node_access_records() // add the admin access row $grants[] = array( 'realm' => 'og_admin', 'gid' => $node->group, 'grant_view' => 1, 'grant_update' => 1, 'grant_delete' => 1 ); return $grants;
then.. hook_node_grants() foreach ($account->og_groups as $group) { if ($group['is_admin'] == 1) { // grant this user admin priv over all nodes in group $grants['og_admin'][] = $group['nid']; } } return $grants
Then hook_enable() node_access_rebuild();
Its simple and it works. I may have some typos in there but thats the basic idea. Same trick can be applied to roles. So you can have editor roles that can change any node on the site. -- Scott Reynolds Senior Developer and Engineer MothersClick scott@mothersclick.com
participants (2)
-
Roman Chyla -
Scott Reynolds