You are here

function user_relationship_node_access_node_grants in User Relationships 5.2

Same name and namespace in other branches
  1. 5.3 user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_node_grants()
  2. 6 user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_node_grants()
  3. 7 user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_node_grants()

hook_node_grants()

File

plugins/user_relationship_node_access/user_relationship_node_access.module, line 183

Code

function user_relationship_node_access_node_grants($user, $op) {

  // get this user's relationships
  $relationships = user_relationships_load(array(
    'user' => $user->uid,
    'approved' => TRUE,
  ));
  foreach ($relationships as $relationship) {
    $viewer_uid = $relationship->requestee_id == $user->uid ? $relationship->requester_id : $relationship->requestee_id;
    if ($relationship->is_oneway) {

      // (You to Them) means the viewer should be the requester
      $grants["user_relationship_node_access_{$relationship->rtid}_yt"][] = $relationship->requester_id;

      // (Them to You) means the viewer should be the requestee
      $grants["user_relationship_node_access_{$relationship->rtid}_ty"][] = $relationship->requestee_id;
    }
    else {
      $grants["user_relationship_node_access_{$relationship->rtid}"][] = $viewer_uid;
    }
  }
  $grants['user_relationship_node_access_author'] = array(
    $user->uid,
  );
  return $grants;
}