You are here

function redhen_org_group_node_access_records in RedHen CRM 7

Implements hook_node_access_records().

File

modules/redhen_org_group/redhen_org_group.module, line 316

Code

function redhen_org_group_node_access_records($node) {
  $grants = array();
  if (!empty($node->{REDHEN_ORG_GROUP_FIELD}) && ($org_ids = field_get_items('node', $node, REDHEN_ORG_GROUP_FIELD))) {
    foreach ($org_ids as $org_id) {
      if ($org = redhen_org_load($org_id['target_id'])) {
        if ($org_type = redhen_org_type_load($org->type)) {
          if (isset($org_type->group) && $org_type->group && ($org_type->redhen_state = REDHEN_STATE_ACTIVE && $org_type->group_settings['private'])) {
            $grants[] = array(
              'realm' => REDHEN_ORG_GROUP_ACCESS_REALM . ':' . $org->type,
              'gid' => $org_id['target_id'],
              'grant_view' => $node->status,
              'grant_update' => 0,
              'grant_delete' => 0,
              'priority' => 10,
            );
          }
        }
      }
    }
  }
  return $grants;
}