diff --git a/modules/gnode/gnode.module b/modules/gnode/gnode.module index 01c5e9c..d23c673 100644 --- a/modules/gnode/gnode.module +++ b/modules/gnode/gnode.module @@ -333,12 +333,21 @@ function gnode_node_access_records(NodeInterface $node) { // We use the group ID as the realm ID. $gid = $group->id(); - - // Add the non-author record for viewing nodes. - $records[] = ['gid' => $gid, 'realm' => "$prefix:$node_type_id"] + $base; - - // Add the author record for updating or deleting. - $records[] = ['gid' => $gid, 'realm' => "gnode_author:$uid:$node_type_id"] + $base; + // Make sure group will not generate duplicate records. + foreach ($records as $record) { + if (($record['gid'] == $gid) && ($record['realm'] == "$prefix:$node_type_id")) { + continue; + } + elseif (($record['gid'] == $gid) && ($record['realm'] == "gnode_author:$uid:$node_type_id")) { + continue; + } + else { + // Add the non-author record for viewing nodes. + $records[] = ['gid' => $gid, 'realm' => "$prefix:$node_type_id"] + $base; + // Add the author record for updating or deleting. + $records[] = ['gid' => $gid, 'realm' => "gnode_author:$uid:$node_type_id"] + $base; + } + } } // Add the general access bypass record.