Access a node into a group without being group member and having a special role.

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
carsato's picture

Hello everybody

I'm using OpenAtrium, I think it's 1.0, but not sure.

I need a user with special profile to access a node into a group without being group member. Is that possible?

In short my code gives groups and "my_content_type" a grant called "my_realm" with gid 1.
hook_node_grants() gives each user with "my_special_role" a grant called "my_realm" with gid 1.

As far as I know that should give access user to node, isn't it?

I added this code, but it's not working:

<?php
/<strong>
*
hook_node_grants()
*
It gives "my_realm" grant with gid 1 to all users with my_special_role
*/
function
my_module_node_grants($account, $op) {
  if (
in_array('my_special_role', $account->roles)){
   
$grants['my_realm'][] = 1;
  }
  return isset(
$grants) ? $grants : array();
}

/</
strong>
*
hook_og_access_grants_alter()
*
It gives all groups content type "my_realm" grant with gid 1
*/
function
my_module_og_access_grants_alter(&$grants, $node){
 
$grants[] = array (
   
'realm' => 'my_realm',
   
'gid' => 1,
   
'grant_view' => 1,
   
'grant_update' => 0,
   
'grant_delete' => 0,
   
'priority' => 0,
  );
  return
$grants;
}

/**
* hook_node_access_records()
*
*  It gives "my_realm" grant with gid 1 to "my_content_type" nodes
*/
function my_module_node_access_records($node){
  if (
$node->type == 'my_content_type') {
     
$grants[] = array (
       
'realm' => 'my_realm',
       
'gid' => 1,
       
'grant_view' => 1,
       
'grant_update' => 0,
       
'grant_delete' => 0,
       
'priority' => 0,
      );
  }
  return isset(
$grants) ? $grants : array();
}
?>

Could you give me a hand on this?
Please, ask if i'm missing some important information.

thank you very much

Access Control

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week