You are here

function nodeaccess_userreference_node_access_records in Node access user reference 6

Same name and namespace in other branches
  1. 5.2 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
  2. 5 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
  3. 6.3 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
  4. 6.2 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
  5. 7.3 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()
  6. 7.2 nodeaccess_userreference.module \nodeaccess_userreference_node_access_records()

Implementation of hook_node_access_records().

File

./nodeaccess_userreference.module, line 111

Code

function nodeaccess_userreference_node_access_records($node) {
  $grants = array();
  $info = content_fields(NULL, $node->type);
  $priority = variable_get('nodeaccess_userreference_priority', 0);
  if (is_array($info)) {
    foreach ($info as $field) {
      if ($field['type'] == 'userreference') {
        $variable = 'nodeaccess_userreference_' . $field['field_name'] . '_' . $field['type_name'];
        $data = variable_get($variable, array(
          'view' => 0,
          'update' => 0,
          'delete' => 0,
        ));
        if (($data['view'] || $data['update'] || $data['delete']) && is_array($node->{$field}['field_name'])) {
          foreach ($node->{$field}['field_name'] as $userreference) {
            $uid =& $userreference['uid'];
            $grants[$uid] = array(
              'realm' => 'nodeaccess_userreference',
              'gid' => $uid,
              'priority' => $priority,
            );
            if ($data['view']) {
              $grants[$uid]['grant_view'] = 1;
            }
            if ($data['update']) {
              $grants[$uid]['grant_update'] = 1;
            }
            if ($data['delete']) {
              $grants[$uid]['grant_delete'] = 1;
            }
          }
        }
      }
    }
  }
  if (!empty($grants)) {
    return $grants;
  }
  return NULL;
}