You are here

function user_relationship_node_access_node_access_records in User Relationships 7

Same name and namespace in other branches
  1. 5.3 user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_node_access_records()
  2. 5.2 plugins/user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_node_access_records()
  3. 6 user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_node_access_records()

Implements hook_node_access_records().

File

user_relationship_node_access/user_relationship_node_access.module, line 399
Allows content posted to be shared with users in one's social network

Code

function user_relationship_node_access_node_access_records($node) {
  if (_user_relationship_node_access_disabling()) {
    return;
  }
  $grants = array();

  //#629774 ensure that node access data is loaded in the node, need this when node is edited by user other than node author
  if (!isset($node->user_relationship_node_access)) {
    $node->user_relationship_node_access = _user_relationship_node_access_load_node_perms($node->nid);
  }
  if (isset($node->user_relationship_node_access) && is_array($node->user_relationship_node_access) && $node->status) {
    foreach ($node->user_relationship_node_access as $rtid => $permissions) {
      $grants[] = array(
        'realm' => "user_relationship_node_access_{$rtid}",
        'gid' => $node->uid,
        'grant_view' => isset($permissions['view']) ? (int) $permissions['view'] : 0,
        'grant_update' => isset($permissions['update']) ? (int) $permissions['update'] : 0,
        'grant_delete' => isset($permissions['delete']) ? (int) $permissions['delete'] : 0,
        'priority' => 0,
      );
    }
  }
  if (count($grants)) {
    $grants[] = array(
      'realm' => 'user_relationship_node_access_author',
      'gid' => $node->uid,
      'grant_view' => 1,
      'grant_update' => 1,
      'grant_delete' => 1,
      'priority' => 0,
    );
  }
  return $grants;
}