--- user_relationships/user_relationships_api/user_relationships_api.module	Mon Oct 26 11:59:29 2009
+++ user_relationships/user_relationships_api/user_relationships_api.module	Mon Oct 26 11:59:21 2009
@@ -261,0 +262,132 @@
+
+/**
+ * Implementation of hook_user_relationships().
+ * or
+ * Implementation of hook_trigger_name().
+ */
+function user_relationships_api_user_relationships($op, &$relationship) {
+if (!in_array($op, array('approve')) && !in_array($op, array('request'))) {
+    return;
+  }
+  $aids = _trigger_get_hook_aids('user_relationships_api', $op);
+
+  $context = array(
+    'hook' => 'user_relationships_api',
+    'op' => $op,
+    'requester' => $relationship->requester_id,
+    'requestee' => $relationship->requestee_id,
+    'relationship' => $relationship,
+  );
+  actions_do(array_keys($aids), $relationship, $context);
+}
+
+/**
+ * Implementation of hook_activity_info().
+ */
+function user_relationships_api_activity_info() {
+    $info = new stdClass();
+    $info->api = 2;
+    $info->name = 'user_relationships_api';
+    $info->object_type = 'user_relationships_api';
+    $info->objects = array('Requester' => 'requester', 'Requestee' => 'requestee
+', 'Relationship' => 'relationship');
+    $info->hooks = array('user_relationships_api' => array('approve', 'request'));
+    foreach (user_relationships_types_load() as $type_obj) {
+      $info->realms["user_relationships_" . $type_obj->rtid] = $type_obj->plural_name;
+    }
+    return $info;
+}
+
+/**
+ * Implementation of hook_activity_grants().
+ */
+function user_relationships_api_activity_grants($activity, $object, $type) {
+  $relationships = array();
+  foreach (user_relationships_types_load() as $type_obj) {
+    $relationships["user_relationships_" . $type_obj->rtid] = array($activity->uid);
+  }
+  return $relationships;
+}
+
+/**
+ * hook_activity_access_grants().
+ */
+function user_relationships_api_activity_access_grants($account) {
+  print_r($account);
+  // load up all the users relationships
+  $params = array(
+    'user' => $account->uid
+  );
+  $relationships = user_relationships_load($params);
+
+  $relationship_ids = array();
+  foreach ($relationships as $rid => $relationship) {
+    // is this approved yet?
+    $relationship_approved = (!$relationship->requires_approval || $relationship->approved);
+
+    if ($relationship_approved) {
+      // if the relationship is not one way, grant to the other uid
+      if (!$relationship->is_oneway) {
+        if ($relationship->requester_id == $account->uid) {
+          $relationship_ids["user_relationships_" . $relationship->rtid][] = $relationship->requestee_id;
+        }
+        else {
+          $relationship_ids["user_relationships_" . $relationship->rtid][] = $relationship->requester_id;
+        }
+      }
+      // if the relationship is one way, grant only if $account->uid == requester_id
+      else if ($relationship->is_oneway) {
+        if ($relationship->requester_id == $account->uid) {
+          $relationship_ids["user_relationships_" . $relationship->rtid][] = $relationship->requestee_id;
+        }
+      }
+    }
+  }
+  return $relationship_ids;
+}
+
+/**
+* Implementation of hook_token_list().
+*/
+function user_relationships_api_token_list($type = 'all') {
+  if ($type == 'requester') {
+    $tokens['user_relationships_api'] = array(
+      'requester' => t('The user who issued the connection request.'),
+    );
+  }else if ($type = 'relationship'){
+$tokens['user_relationships_api'] = array(     
+  'requestee' => t('The user who approved the connnection request.'),
+      'relationship-name' => t('The relationship name (singular form)'),
+    );
+  }
+  return $tokens;
+}
+
+/**
+* Implementation of hook_token_values().
+*/
+function user_relationships_api_token_values($type, $data = NULL, $options = array()) {
+  if ($type == 'requester') {
+    $r = $data;
+    $token_values = array(
+      'requester' => theme('username', user_load(array('uid' => $r))),
+    );
+  }elseif ($type == 'requestee'){
+  $r = $data;
+  $token_values = array(
+      'requestee' => theme('username', user_load(array('uid' => $r))),
+    );
+  }
+  elseif ($type == 'relationship') {
+    $r = $data;
+    $r_type = user_relationships_type_load($r->rtid);
+   
+    $token_values = array(
+      'requestee' => theme('username', user_load(array('uid' => $r->requestee_id))),
+      'requester' => theme('username', user_load(array('uid' => $r->requester_id))),
+      'relationship-name' => theme('placeholder', $r_type->name),
+    );
+  }
+ 
+  return $token_values;
+}
\ No newline at end of file
